こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

SQL文の副問合わせについて

いつも勉強させて頂いています。
SQLの副問合わせでわからないところが出て来ましたので、教えて頂けると助かります。

<環境>
VB 2008
SQLSERVER 2005

<内容>
金額の集計をしたいのですが。

テーブルA 品番(主キー) 品名 予測金額
テーブルB 品番(キー)  品名 確定金額

テーブルAの品番に対してテーブルBのレコードが1対多の関係です。

<結果>

品名に「あ」を含むもの、 テーブルAのCOUNT、 テーブルBのCOUNT、 予測金額合計、 確定金額合計

上記結果で出力したいのですが、困っています。
宜しくお願い致します。    
    

投稿日時 - 2008-06-27 12:01:15

QNo.4132912

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

これでどうでしょうか?
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.予測金額

投稿日時 - 2008-06-29 20:04:50

ANo.1

これでいけませんか?
select
テーブルA.品名,
count(テーブルA.品番),
count(テーブルB.品番),
sum(テーブルA.予測金額),
sum(テーブルB.確定金額)
from
テーブルA,テーブルB
where
テーブルA.品番=テーブルB.品番
and テーブルA.品名 like 'あ%'
group by
テーブルA.品名;

あんまり記憶に自信がないんですが、サブクエリと集計関数は一緒には使えないんじゃありませんでしたっけ?

投稿日時 - 2008-06-27 23:23:20

あなたにオススメの質問