2013-02-14 65 views
1

下面給出的數據,SQL語句數列條目

TEST_SET_1 TEST_1  PASSED 

TEST_SET_1 TEST_1  NOT COMPLETED 

TEST_SET_1 TEST_1  PASSED 

TEST_SET_1 TEST_1  FAILED 

TEST_SET_1 TEST_1  FAILED 

如何使用SQL出現如下I格式呢?

TEST SET TEST  PASSED FAILED NOT COMPLETED 

TEST_SET_1 TEST_1  2   2   1 

回答

2

事情是這樣的:

SELECT 
    [TEST SET], 
    [TEST], 
    SUM(CASE WHEN [state]='PASSED' THEN 1 ELSE 0 END) AS PASSED, 
    SUM(CASE WHEN [state]='FAILED' THEN 1 ELSE 0 END) AS FAILED, 
    SUM(CASE WHEN [state]='NOT COMPLETED' THEN 1 ELSE 0 END) AS [NOT COMPLETED] 
FROM 
    table 
GROUP BY 
    [TEST SET], 
    [TEST] 

或者,如果您想用PIVOT做到這一點,並使用MSSQL 2005+。那麼你可以這樣做:

SELECT 
    * 
FROM 
(
    SELECT 
     [TEST SET], 
     [TEST], 
     [state], 
     1 AS StaticNbr 
    FROM 
     table 
) AS SorceTable 
PIVOT 
(
    SUM(StaticNbr) 
    FOR [state] IN ([PASSED], [FAILED], [NOT COMPLETED]) 
) AS pvt