- 締切済み
SQL文の副問合わせについて
いつも勉強させて頂いています。 SQLの副問合わせでわからないところが出て来ましたので、教えて頂けると助かります。 <環境> VB 2008 SQLSERVER 2005 <内容> 金額の集計をしたいのですが。 テーブルA 品番(主キー) 品名 予測金額 テーブルB 品番(キー) 品名 確定金額 テーブルAの品番に対してテーブルBのレコードが1対多の関係です。 <結果> 品名に「あ」を含むもの、 テーブルAのCOUNT、 テーブルBのCOUNT、 予測金額合計、 確定金額合計 上記結果で出力したいのですが、困っています。 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- nfushi
- ベストアンサー率31% (39/122)
これでどうでしょうか? AにあってBに無い場合も考慮してLEFT JOINにしました。 もしBに無い場合に予測金額も出したくないのでしたらINNER JOINに変更して下さい。 SELECT T.品番, T.予測金額, SUM(ISNULL(T.確定金額,0))AS 確定金額 FROM ( SELECT A.品番, A.予測金額, B.確定金額 FROM テーブルA A LEFT JOIN テーブルB ON A.品番 = B.品番 WHERE A.品番 LIKE 'あ%' ) T GROUP BY T.品番, T.予測金額
- pacona
- ベストアンサー率0% (0/0)
これでいけませんか? select テーブルA.品名, count(テーブルA.品番), count(テーブルB.品番), sum(テーブルA.予測金額), sum(テーブルB.確定金額) from テーブルA,テーブルB where テーブルA.品番=テーブルB.品番 and テーブルA.品名 like 'あ%' group by テーブルA.品名; あんまり記憶に自信がないんですが、サブクエリと集計関数は一緒には使えないんじゃありませんでしたっけ?