![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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も見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
GROUP BYを行った後に結合したい。
Oracle
-
複数のテーブルから値を合計出力するSQLについて
MySQL
-
SQL Left Join で重複を排除するには
SQL Server
-
-
4
2つのテーブルを結合して合計(SQL文)
SQL Server
-
5
SELECTした合計値をそのまま割り算したい
MySQL
-
6
MAX関数を使ってからLEFT JOINしたいのですが・・
PHP
-
7
【SQL】他テーブルに含まれる値に合致する行を抽出
その他(データベース)
-
8
inner joinをすると数がおかしくなります
MySQL
-
9
【PHP】SQL文のSUM関数で出力した2つのデータを減算する方法を教えて下さい。
MySQL
-
10
SQL文で、合計が0のレコードを表示させないようにしたい。
SQL Server
-
11
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
12
複数テーブルのGROUP BY の使い方を教えて下さい。
MySQL
-
13
SQL文で素早くNULLを除外する方法
SQL Server
-
14
副問合せの書き方について
SQL Server
-
15
SELECT 文 GROUP での1件目を取得
SQL Server
-
16
SQL Serverにおける小数部の0表記について
その他(プログラミング・Web制作)
-
17
【MYSQL】asでリネームしてwhereで使う
MySQL
-
18
group byの並び順を変えるだけで結果が異なる
Oracle
-
19
カレントレコードが無い事を判定させる方法
Visual Basic(VBA)
-
20
SQL文のwhere条件文で使う <> の意味はなんですか
その他(データベース)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【SQL】他テーブルに含まれる値...
-
結合したテーブルをSUMしたい
-
ACCESSのVBAにてExcelに行...
-
データ無し時は空白行にしたい...
-
既存データをINSERT文にして出...
-
三科目合計点のクラス別平均点...
-
ADO+ODBCでテーブルに接続する...
-
ACCESS クエリーでソートの不具合
-
2つのテーブルをLIKE演算子のよ...
-
水平分割されたテーブルに対す...
-
SQLで、Join句で結合したテ...
-
同一テーブル内での比較(最新...
-
Accessの構成をコピーしたい
-
テーブルデータの上書きをした...
-
Excelでしりとりを作る方法
-
(SQL)日数の計算
-
複数のテーブルからデータを取...
-
パススルークエリ&ACCESSテーブ...
-
PRIMARY KEYのコピー
-
SQLサーバに対するSQL文で抽出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【SQL】他テーブルに含まれる値...
-
テーブル名が可変の場合のクエ...
-
既存データをINSERT文にして出...
-
結合したテーブルをSUMしたい
-
SQLで、Join句で結合したテ...
-
2つのテーブルをLIKE演算子のよ...
-
ACCESSのVBAにてExcelに行...
-
データ無し時は空白行にしたい...
-
下記の問合せを行うクエリを、 ...
-
Accessの構成をコピーしたい
-
ExcelのVLOOKUP関数の動作をMyS...
-
ADO+ODBCでテーブルに接続する...
-
SQLサーバに対するSQL文で抽出...
-
ExcelのMatch関数のようなもの...
-
ACCESS クエリーでソートの不具合
-
PRIMARY KEYのコピー
-
同一テーブル内での比較(最新...
-
SQLです!!教えてください。あ...
-
改行を含んだデータのインポート
-
SQLです!!教えてください。あ...
おすすめ情報