
SQl勉強中の初心者です
結合したテーブルのSUMの値が思うように集計できません。
以下のような2つのテーブルがあったとします。
テーブルA
Date,ConNo
2016-05-15,test001
2016-05-15,test001
2016-05-25,test002
2016-05-25,test002
2016-05-25,test002
テーブルB
ConNo,line,Amt
test002,1,1500
test002,2,1500
test002,3,1500
select A.Date,A.ConNo,Sum(B.RAmt) as B_sum
from テーブルA A left outer join テーブルB B on A.ConNo= B.ConNo
group by A.Date,A.ConNo
into :arDate,:arConNo,:arAmt;
テーブルAを主として、group byしたときに、対応するテーブルBをSUMしたいのですが、
SUMした値が以下のようにデータ数分倍になってしまいます。
2016-05-15,test001,0
2016-05-25,test002,13500
以下のような結果にする場合は、どう書けばいいのでしょうか?
2016-05-15,test001,0
2016-05-25,test002,4500
宜しくお願いします
No.1ベストアンサー
- 回答日時:
なんかテーブルAのデータの持ち方がSQLらしくない
2016-05-15,test001が2つあって
2016-05-25,test002が3つある必要があるのでしょうか?
それぞれのデータの相関関係はあるのでしょうか?
テーブルの設計についてすこし知識を深めたほうが良いと思います
今のものを使う前提であれば一度テーブルAをユニークなデータに
つぶしてから、結合するのが妥当ですが
SELECT A.Date,A.ConNo,Sum(B.Amt) as B_sum
FROM (select DISTINCT Date,ConNo
from tableA ) AS A
left join tableB as B on A.ConNo= B.ConNo
group by A.Date,A.ConNo
ただしこの場合、2016-05-15のSUMは0ではなくNULLです
回答ありがとうございます。
おっしゃる様にデータだけ見ると意味ある構造なの?
ってなりますよね。
今回の質問では必要項目しか載せていないので、余計にそう思われたのかもしれません。
ただ、テーブル設計についても知識は深めていければと思っています。
今日は外出なので、後日試してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) MAXで0が出力される 1 2022/03/31 21:43
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
- PHP $_SESSIONについて教えて下さい。 2 2023/03/02 09:18
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- MySQL テーブル作成時のカラムについて 2 2022/08/27 21:48
- その他(学校・勉強) Japanese schools tests 1 2022/08/19 14:41
- 中学校受験 Japanese schools 1 2022/08/22 15:53
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
- Excel(エクセル) Excelの置換が上手くいかない Microsoft® Excel® 2019 MSO (バージョン 5 2022/08/17 22:26
このQ&Aを見た人はこんなQ&Aも見ています
-
複数のテーブルから値を合計出力するSQLについて
MySQL
-
GROUP BYを行った後に結合したい。
Oracle
-
inner joinをすると数がおかしくなります
MySQL
-
-
4
副問合せの書き方について
SQL Server
-
5
2つのテーブルを結合して合計(SQL文)
SQL Server
-
6
『列名 '担当者CD' があいまいです。』
Microsoft ASP
-
7
結合したテーブルに名前をつけるには?
MySQL
-
8
OUTER JOIN とgroup by
MySQL
-
9
データベースのINT型項目にNULLはNG?
MySQL
-
10
sqlserverで集計結果をUPDATEしたいです
SQL Server
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【SQL】他テーブルに含まれる値...
-
重複データを除いてカウントしたい
-
必要なテーブルの個数について。
-
一つの項目に2つのデータが含...
-
SQLで、Join句で結合したテ...
-
複数から成るテーブルを元に特...
-
PRIMARY KEYのコピー
-
在庫管理のデータベース
-
フィールド内のデータの増加に...
-
Access、教えてください。
-
同じ構成のテーブルの条件付き結合
-
複数の期間にマッチする人の抽...
-
別のテーブルから数値を取得したい
-
MySQLで複数条件指定での抽出
-
同じ構成の2つのテーブルの更...
-
テーブルデーターの展開方法に...
-
改行を含んだデータのインポート
-
既存データをINSERT文にして出...
-
GROUP_CONCATについて
-
Mysqlで複数テーブルの参照
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【SQL】他テーブルに含まれる値...
-
SQLで、Join句で結合したテ...
-
Accessの構成をコピーしたい
-
既存データをINSERT文にして出...
-
同一テーブル内での比較(最新...
-
SQLサーバに対するSQL文で抽出...
-
副問合せを使わずにUNIONと同様...
-
結合したテーブルをSUMしたい
-
テーブル名が可変の場合のクエ...
-
PRIMARY KEYのコピー
-
2つのテーブルをLIKE演算子のよ...
-
ACCESSのVBAにてExcelに行...
-
DB2のSQLコマンドについて
-
Excelでしりとりを作る方法
-
ExcelのMatch関数のようなもの...
-
改行を含んだデータのインポート
-
ExcelのVLOOKUP関数の動作をMyS...
-
ADO+ODBCでテーブルに接続する...
-
データ無し時は空白行にしたい...
-
Access特定のテーブルを編集不...
おすすめ情報