我需要编写一个查询,该查询将按查询分组后返回一行。例如,我有一个带有列的表 tblTest :
Id, Name, Type, Amount
1, Receipt, Cash 100
2, Receipt, Card 200
3, Receipt, Cheque 250
4, Receipt, Card 150
5, Receipt, Cash 100
6, Payment, Cash 300
7, Payment, Cheque 400
按查询分组后
Select Name,Type,Amount from tblTest where 1=1 Group by Type
它返回我,
1 Receipt Cash 200
2 Receipt Card 350
3 Receipt Cheque 250
4 Payment, Cash 300
5 Payment, Cheque 400
但是我需要返回的是类似的东西
Name Cash Card Cheque
Receipt 200 350 250
Payment 300 NULL 400
先谢谢了。
答案 0 :(得分:4)
您只需要一个基本的数据透视查询以及一个求和:
SELECT
Name,
SUM(CASE WHEN Type = 'Cash' THEN Amount ELSE 0 END) Cash,
SUM(CASE WHEN Type = 'Card' THEN Amount ELSE 0 END) Card,
SUM(CASE WHEN Type = 'Cheque' THEN Amount ELSE 0 END) Cheque
FROM tblTest
GROUP BY
Name;