我在编写SQL查询时遇到问题,无法显示行的状态,如图所示。
我在考虑使用Status的别名:
SELECT 'Table A.Date', 'Table A.Status' as ... FROM Table A;
但这并不能解决有关如何将每种状态类型显示为自己的列和数值的问题。
有人可以指出如何做到这一点吗?
答案 0 :(得分:1)
试试这个。我使用CASE
语句根据给定的状态类型有条件地将状态计为一个。
SELECT
Date,
SUM(CASE WHEN Status='Pending' THEN 1 ELSE 0 END)Pending,
SUM(CASE WHEN Status='Completed' THEN 1 ELSE 0 END)Completed,
SUM(CASE WHEN Status='Cancelled' THEN 1 ELSE 0 END)Cancelled
FROM Table A
WHERE Date='2014-01-01'
GROUP BY Date
答案 1 :(得分:1)
试试这个:
select A.date,
count(
case
when A.Status='Pending'
Then 1
Else NULL
End
) as Pending,
count(
case
when A.Status='Completed'
Then 1
Else NULL
End
) as Completed,
count(
case
when A.Status='Cancelled'
Then 1
Else NULL
End
) as Cancelled
From A
group by A.date