带有多个选择语句的MYSql子查询

And*_*ang 2 mysql

我有一张桌子,看起来像这样

Savings
ID | Name | Type | Amount | Date
1  | Alex | Cash | 100    | 2019-06-10
2  | Nick | CHQ  | 500    | 2019-06-10
3  | Mike | Cash | 700    | 2019-06-10
4  | Luke | CHQ  | 200    | 2019-06-10
5  | Alex | Card | 300    | 2019-06-10
6  | Alex | Card | 100    | 2019-06-10
7  | Luke | Cash | 900    | 2019-06-10
8  | Alex | Cash | 400    | 2019-06-10
9  | Mike | CHQ  | 200    | 2019-06-10
Run Code Online (Sandbox Code Playgroud)

是否可以仅使用1条select语句以这种方式进行分类?

Final Output
Name | Total Amount | Total Cash | Total Chq
Mike | 900          | 700        | 200
Luke | 1100         | 900        | 200
Alex | 500          | 500        | 0
Nick | 500          | 0          | 500
Run Code Online (Sandbox Code Playgroud)

这是我目前的说法

SELECT 
  name, 
  SUM(amount) 
FROM 
  savings 
WHERE 
  date = '2019-06-10' AND 
  type = 'Cash' OR date = '2019-06-10' AND 
  type = 'Chq' 
GROUP BY 
  name 
ORDER BY 
  SUM(amount) DESC
Run Code Online (Sandbox Code Playgroud)

所有帮助表示赞赏。谢谢

Fah*_*hmi 5

使用conditional aggregationcase when expression

SELECT name, sum(amount) as 'Total Amount',
SUM(case when type = 'Cash' then amount end) as 'Total Cash',
SUM(case when type = 'Chq' then amount end) as 'Total Chq'
FROM savings 
where date = '2019-06-10' group BY name 
Run Code Online (Sandbox Code Playgroud)