我有下表:
Bank:
name val amount
John 1 2000
Peter 1 1999
Peter 2 1854
John 2 1888
Run Code Online (Sandbox Code Playgroud)
我正在尝试编写SQL查询以提供以下结果:
name amountVal1 amountVal2
John 2000 1888
Peter 1999 1854
Run Code Online (Sandbox Code Playgroud)
到目前为止我有这个:
SELECT name,
CASE WHEN val = 1 THEN amount ELSE 0 END AS amountVal1,
CASE WHEN val = 2 THEN amount ELSE 0 END AS amountVal2
FROM bank
Run Code Online (Sandbox Code Playgroud)
但是,它给出了稍微错误的结果:
name amountVal1 amountVal2
John 2000 0
Peter 1999 0
John 0 1888
Peter 0 1854
Run Code Online (Sandbox Code Playgroud)
如何修改我的查询以提供正确的演示文稿?谢谢
nos*_*nos 15
SELECT
name,
SUM(CASE WHEN val = 1 THEN amount ELSE 0 END) AS amountVal1,
SUM(CASE WHEN val = 2 THEN amount ELSE 0 END) AS amountVal2
FROM bank GROUP BY name
Run Code Online (Sandbox Code Playgroud)