- - PR -
データの結合方法
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-02-23 16:34
いつもお世話になります。
SQLサーバー2000(SP4)を使用しています。 以下のように2つのテーブルがあります。 在庫テーブル=========== 材質 |長さ |在庫数 ----------------------- 金属 |3.00 |10 金属 |3.50 | 5 金属 |4.00 | 2 木材 |3.00 | 5 木材 |3.50 | 2 販売テーブル=========== 長さ |販売数 ----------------------- 3.50 | 1 3.00 | 2 3.50 | 3 4.00 | 2 3.00 | 2 4.20 | 9 行ないたい処理は、 @在庫テーブルから長さ別に在庫数を集計する(材質は無関係) → SELECT 長さ,SUM(在庫数) FROM 在庫テーブル GROUP BY 長さ 長さ |在庫数 --------------- 3.00 |15 3.50 | 7 4.00 | 2 A販売テーブルから長さ別の販売数量を集計する → SELECT 長さ,SUM(販売数) FROM 販売テーブル GROUP BY 長さ 販売テーブル=========== 長さ |販売数 ----------------------- 3.00 | 4 3.50 | 4 4.00 | 2 4.20 | 9 B@とAで得られたデータを結合して下記のように1つのデータとして抽出したい。 結果データ============= 長さ |販売数|在庫数 ----------------------- 3.00 | 4 |12 3.50 | 4 | 7 4.00 | 2 | 2 4.20 | 9 | 0 この場合、在庫テーブルと販売テーブルから1回のSQL文実行でBのようなデータを抽出する事はできないのでしょうか? 私の思いつく方法だと@を実行し、その結果をどこかへ保存し、 その後Aを実行し、また結果をどこかへ保存し、 最終的に@とAをJOINするしか思い付きません。 どなたか良い方法がありましたらアドバイスをお願いします。 | ||||||||
|
投稿日時: 2008-02-23 17:04
思いつきで。
うーん美しくない。 もっとスマートな方法もありそう。
できた。 この他さらに条件句をつける場合は注意が必要です。 なんでもかんでも1回のSQLで抽出するのもどうかと思いますね。 | ||||||||
|
投稿日時: 2008-02-24 10:37
ってのは? | ||||||||
|
投稿日時: 2008-02-24 12:20
こんな感じでどうでしょう?
| ||||||||
|
投稿日時: 2008-03-01 19:28
よっし〜。さん、かずくんさん、忠犬さん、レスありがとうございます。
それと返答が遅くなってしまいごめんなさい! みなさん色々なテクニックをお持ちで、ほんと色々なSELECT文があるなぁ〜と驚かされます^^;参考にさせて頂きます。 「coalesce」って便利ですねー、これを知っておくと知らないのでは開発に大きく影響しますね! ありがとうございました、 失礼します。 |
1