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も見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
遅刻の「言い訳」選手権
よく遅刻してしまうんです…… 「電車が遅延してしまい遅れました」 「歯医者さんが長引いて、、、」 「病院が混んでいて」 などなどみなさんがこれまで使ってきた遅刻の言い訳がたくさんあるのではないでしょうか?
-
いけず言葉しりとり
はんなりと心にダメージを与える「いけず言葉」でしりとりをしましょう。 「あ」あら〜しゃれた服着てはりますな 遠くからでもわかりましたわ
-
ギリギリ行けるお一人様のライン
おひとり様需要が増えているというニュースも耳にしますが、 あなたが「ギリギリ一人でも行ける!」という場所や行為を教えてください
-
複数のテーブルから値を合計出力するSQLについて
MySQL
-
GROUP BYを行った後に結合したい。
Oracle
-
inner joinをすると数がおかしくなります
MySQL
-
-
4
SQL文で、合計が0のレコードを表示させないようにしたい。
SQL Server
-
5
【SQL】他テーブルに含まれる値に合致する行を抽出
その他(データベース)
-
6
副問合せの書き方について
SQL Server
-
7
LEFT JOIN と GROUP BY
MySQL
-
8
SQL Left Join で重複を排除するには
SQL Server
-
9
tableタグとformタグの組み合わせ
HTML・CSS
-
10
SELECTした合計値をそのまま割り算したい
MySQL
-
11
BETWEEN を2つ以上使用する方法はありますか?
MySQL
-
12
MAX関数を使ってからLEFT JOINしたいのですが・・
PHP
-
13
単一グループのグループ関数ではありません。
Oracle
-
14
文字列の後ろから必要分だけ削除したい。
Visual Basic(VBA)
-
15
集計後の数値が倍になる
Oracle
-
16
OUTER JOIN とgroup by
MySQL
-
17
【PHP】SQL文のSUM関数で出力した2つのデータを減算する方法を教えて下さい。
MySQL
-
18
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パススルークエリ&ACCESSテーブ...
-
【SQL】他テーブルに含まれる値...
-
ACCESS クエリーでソートの不具合
-
同一テーブル内での比較(最新...
-
テーブル名が可変の場合のクエ...
-
既存データをINSERT文にして出...
-
SQLで複数のテーブルをつないで...
-
selectの単純繰り返し
-
フラグをたてるってどういうこ...
-
UPDATEで既存のレコードに文字...
-
pro*cobol ⇔ oracle のデータ型...
-
【sqlite3】deleteしても.dbフ...
-
SELECT文の結果をDEFINEの値と...
-
SELECTした結果をSELECTしたい!
-
複数レコードの複数フィールド...
-
SELECTした結果に行番号を求めたい
-
SELECT INTOで一度に複数の変数...
-
sqlに記述できない文字
-
右向き、左向きの速度が最大と...
-
IDとパスワードについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【SQL】他テーブルに含まれる値...
-
既存データをINSERT文にして出...
-
SQLで、Join句で結合したテ...
-
結合したテーブルをSUMしたい
-
テーブル名が可変の場合のクエ...
-
Accessの構成をコピーしたい
-
同一テーブル内での比較(最新...
-
ADO+ODBCでテーブルに接続する...
-
ACCESS クエリーでソートの不具合
-
SQLサーバに対するSQL文で抽出...
-
ACCESSのVBAにてExcelに行...
-
改行を含んだデータのインポート
-
PRIMARY KEYのコピー
-
MySQL: 複数テーブルのcount
-
データ無し時は空白行にしたい...
-
ExcelのVLOOKUP関数の動作をMyS...
-
ExcelのMatch関数のようなもの...
-
2つのテーブルをLIKE演算子のよ...
-
Access特定のテーブルを編集不...
-
Excelでしりとりを作る方法
おすすめ情報