我需要编写一个查询,该查询在分组查询后返回一行。例如,我有一个表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
提前致谢..
最佳答案
您只需要一个基本的数据透视查询和一个求和:
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;
Demo
关于MySQL 查询与 Group by 以获得指定结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51355560/