特定のケースでgroup by節を理解しようとしています。それぞれの請求書に同じ金額のテーブルを2つ追加しました。矛盾がないことを確認するクエリを作成します。ここでは、テーブル、クエリと結果である:グループ別と合計のデータがありません
Table A:
Order_Number | Order_Number_Line | Amount
1 | 1 | 80
1 | 2 | 20
1 | 3 | 30
1 | 4 | 70
Table B
Order_Number | Order_Number_Line | Invoice_ID | Invoice_Line_Number | Amount
1 | 1 | 1234 | 1 | 20
1 | 2 | 1234 | 2 | 5
1 | 3 | 1234 | 3 | 10
1 | 4 | 1234 | 4 | 25
1 | 1 | 1234 | 1 | 35
1 | 2 | 1234 | 2 | 7
1 | 3 | 1234 | 3 | 15
1 | 4 | 1234 | 4 | 10
1 | 1 | 1234 | 1 | 25
1 | 2 | 1234 | 2 | 8
1 | 3 | 1234 | 3 | 5
1 | 4 | 1234 | 4 | 35
Select A.Order_Number, A.Amount, B.Amount
From Table_A as A
Left Join (Select Order_Number, Amount From Table_B) as B
On A.Order_Number = B.Order_Number
Order_Number | Amount_Table_A | Amount_Table_B
01 | 80 | 20
01 | 80 | 5
01 | 80 | 10
01 | 80 | 25
01 | 80 | 35
01 | 80 | 7
01 | 80 | 15
01 | 80 | 10
01 | 80 | 25
01 | 80 | 8
01 | 80 | 5
01 | 80 | 35
01 | 20 | 20
01 | 20 | 5
01 | 20 | 10
01 | 20 | 25
01 | 20 | 35
01 | 20 | 7
01 | 20 | 15
01 | 20 | 10
01 | 20 | 25
01 | 20 | 8
01 | 20 | 5
01 | 20 | 35
01 | 30 | 20
01 | 30 | 5
01 | 30 | 10
01 | 30 | 25
01 | 30 | 35
01 | 30 | 7
01 | 30 | 15
01 | 30 | 10
01 | 30 | 25
01 | 30 | 8
01 | 30 | 5
01 | 30 | 35
01 | 70 | 20
01 | 70 | 5
01 | 70 | 10
01 | 70 | 25
01 | 70 | 35
01 | 70 | 7
01 | 70 | 15
01 | 70 | 10
01 | 70 | 25
01 | 70 | 8
01 | 70 | 5
01 | 70 | 35
私がして、グループを使用してみましたが、唯一の各テーブルの最初の量の記録を得た:
Select A.Order_Number, A.Amount, B.Amount
From Table_A as A
Left Join (Select Order_Number, Amount From Table_B) as B
On A.Order_Number = B.Order_Number
Group By A.Order_Number
Invoice_ID | Amount_Table_A | Amount_Table_B |
01 | 80 | 20 |
私はそれぞれに合計を追加する()句を試してみました量のSELECT文の属性と各繰り返しレコードの合計ました:
Select A.Order_Number, sum(A.Amount), sum(B.Amount)
From Table_A as A
Left Join (Select Order_Number, Amount From Table_B) as B
On A.Order_Number = B.Order_Number
Group By A.Order_Number
Invoice_ID | Amount_Table_A | Amount_Table_B |
01 | 2400 | 800 |
どのように私は、実際の値を表示するには、このクエリを変更することを??期待値:
Invoice_ID | Amount_Table_A | Amount_Table_B |
01 | 200 | 200 |
これは単純化されたデータセットであることに注意してください。実際のテーブルは100万レコード以上あり、両方のテーブルでInvoice_IDが同じ合計になるようにする必要があります。
ありがとうございました!
テーブルAとテーブルBの両方から最初の10〜20レコードを投稿してください。また、その10〜20レコードで計算する必要がある出力もありますか。それはあなたが必要とするものを理解するのに役立ちます。 –
データセットにアクセスできるように質問を編集しました。目的の出力は、各テーブルの期待値:200です。 –