0
我有一個表結構如下GROUP BY和自加入
Txn_id Varchar
Role Varchar
Acid Varchar
RefTxt Varchar
現在RefTxt列將只包含數據時角色列類型是「轉運」的。角色也可以佔用值「發件人」和「接收器」
我要查詢表中這樣的我寫的查詢
的方式,我得到以下輸出Txn_id Sender_Acid Reciever_Acid
Tx001 SAC001 RAC001
對於本
SELECT
myTable.Txn_id,
MAX(CASE WHEN role = 'Sender' THEN myTable.acid END) AS sender_acid,
MAX(CASE WHEN role = 'Recipient' THEN myTable.acid END) AS recipient_acid
FROM
myTable,
(
SELECT txn_id, reftext
FROM myTable
WHERE role = 'Transporter'
) SubQuery
WHERE SubQuery.txn_id = myTable.txn_id
AND myTable.role in ('Sender', 'Receiver')
GROUP BY mytable.txn_id;
我期望結果包含每個txn_id的單行,其中包含各個帳戶的Sender_Acid和Receiver_Acid字段。但是,對於某些Txn_id,我得到兩個單獨的行,其中Sender_acid或receiver_acid爲NULL。我究竟做錯了什麼?