MYSQL - 显示状态输入作为它自己的列

时间:2015-02-17 01:56:00

标签: mysql

我在编写SQL查询时遇到问题,无法显示行的状态,如图所示。

enter image description here

我在考虑使用Status的别名:

SELECT 'Table A.Date', 'Table A.Status' as ... FROM Table A;

但这并不能解决有关如何将每种状态类型显示为自己的列和数值的问题。

有人可以指出如何做到这一点吗?

2 个答案:

答案 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