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

解決済みの質問

SQLでの集計について

こんにちわ。以下のようなテーブルから条件に見合う合計を出したいと思いSQLを書いてみたのですが、
思った結果になりません。

テーブルA
ID1 得意先Cd 営業所Cd 日付
1  001    001  2005/09/01
2  001    002  2005/09/01
3  001    001  2005/09/03

テーブルB
ID2 ID1 部署 数量 金額
1  1  01  1  1000
2  1  01  1  1000
3  1  02  1  1000
4  2  01  1  1000
5  2  01  1  1000
6  3  01  1  1000
7  3  01  1  1000
8  3  02  1  1000

[抽出結果]
得意先Cd 営業所Cd 日付  部署 数量(Sum) 金額(Sum)
001    001  2005/09/01 01   2   2000
001    001  2005/09/01 02   1   1000
001    001  2005/09/03 01   2   2000
001    001  2005/09/03 02   1   1000
001    002  2005/09/01 01   2   2000

[SQL]
select
得意先Cd,営業所Cd,日付,部署,SUM(数量) As '数量計',SUM(金額) As '金額計'
from テーブルA AA Inner join テーブルB BB ON (AA.ID1 = BB.ID1)

group by 得意先Cd,営業所Cd,日付,部署,数量,金額
order by 得意先Cd,営業所Cd,日付,部署

このSQLを実行すると、日付、部署共に同じ場合でも数量・金額が合計値となりません。
得意先Cd 営業所Cd 日付  部署 数量 金額
001    001  2005/09/01 01 1  1000
001    001  2005/09/01 01 1  1000

どのように変更を加えれば、上記の「抽出結果」にできるのでしょうか?
よろしくお願いいたします。

投稿日時 - 2005-09-14 16:13:38

QNo.1648928

すぐに回答ほしいです

質問者が選んだベストアンサー

「group by」の数量と金額を取り除いて下さい。
数量と金額は集合関数を使っていますので、「group by」に記述する必要はありません。

投稿日時 - 2005-09-14 16:28:38

お礼

stupid_honeyさん、早速の回答ありがとうございます。

stupid_honeyさんの仰るとおり、記述を外すことで実現できました。
group by句について、もう一度調べます。

投稿日時 - 2005-09-14 16:55:21

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

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

回答(1)

あなたにオススメの質問