私はこのようなクエリを実行しています:マージSELECTを作るためにどのように複製された主キーは
SELECT a.transactionID,a.customerID,b.value
FROM adjustments a
INNER JOIN change b
on a.transactionID = b.transactionID
and a.event_date = b.event_date
and a.event_id = b.event_id
WHERE comment LIKE 'TRANSFER'
ORDER BY a.transactionID;
このクエリは次のような結果をもたらす:
transactionID | customerID | value
------------------------------------
TRANSFER-001 | CUSTA | -200
TRANSFER-001 | CUSTB | 200
TRANSFER-002 | CUSTC | -150
TRANSFER-002 | CUSTD | 0
TRANSFER-003 | CUSTA | 0
TRANSFER-003 | CUSTC | 150
私はこれを変更する必要がvalue
の合計がであり、同じtransactionID
の場合を無視し、さらにcustomerID
をグループ化し、次の値をグループ化するリストをもたらすクエリ:
transactionID | customerID_A | value_A | customerID_B | value_B
------------------------------------------------------------------
TRANSFER-002 | CUSTC | -150 | CUSTD | 0
TRANSFER-003 | CUSTA | 0 | CUSTC | 150
これを解決する方法についてアドバイスをいただけますか?
どのようなテーブルAとBがどのように見えるか教えてください。それはあなたの元のクエリに記載されていない希望の出力の列を持っていると思われる – kbball
@ kabball管理者は、私は完全なテーブルのプロパティを共有することはできませんが、私はテーブルAはすべてのtranferの詳細、使用されているサービス、使用されているサービスなど)、テーブルBには、金額とその他の数値データのみが格納されます。 –