
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
OUTER JOIN とgroup by
MySQL
-
5
『列名 '担当者CD' があいまいです。』
Microsoft ASP
-
6
副問合せの書き方について
SQL Server
-
7
2つのテーブルを結合して合計(SQL文)
SQL Server
-
8
データベースのINT型項目にNULLはNG?
MySQL
-
9
PL/SQL PLS-00103エラーについて
Oracle
-
10
集計後の数値が倍になる
Oracle
-
11
sqlserverで集計結果をUPDATEしたいです
SQL Server
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelでしりとりを作る方法
-
SQLローダーについて
-
アクセスについて質問です。緊...
-
DB、キャストとインサートを...
-
#1062 - Duplicate entry '1' f...
-
SQLServerからMDBへのデータバ...
-
異なるデータベース間でinner j...
-
selectで取得したデータがブラ...
-
BCPでCSVファイルをインポート...
-
別テーブルを参照し、その内容...
-
SQLのテーブルにないデータの出力
-
データベースphpMyAdminの接続解除
-
【SQL】他テーブルに含まれる値...
-
ExcelのMatch関数のようなもの...
-
既存データをINSERT文にして出...
-
入退室時間の確認方法
-
Accessの構成をコピーしたい
-
hp z200 sffというパソコンな...
-
エクセルで去年のデータを今年...
-
Java環境で使用するAccessデー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【SQL】他テーブルに含まれる値...
-
既存データをINSERT文にして出...
-
SQLで、Join句で結合したテ...
-
Accessの構成をコピーしたい
-
SQLサーバに対するSQL文で抽出...
-
テーブル名が可変の場合のクエ...
-
副問合せを使わずにUNIONと同様...
-
同一テーブル内での比較(最新...
-
PRIMARY KEYのコピー
-
2つのテーブルをLIKE演算子のよ...
-
結合したテーブルをSUMしたい
-
ExcelのMatch関数のようなもの...
-
ACCESSのVBAにてExcelに行...
-
DB2のSQLコマンドについて
-
データ無し時は空白行にしたい...
-
ADO+ODBCでテーブルに接続する...
-
ACCESS クエリーでソートの不具合
-
改行を含んだデータのインポート
-
複数のテーブルからデータを取...
-
ExcelのVLOOKUP関数の動作をMyS...
おすすめ情報