2016-09-20 127 views
-1

我有一個列請求列表RequestType,狀態.Status列值可以進行中,編譯等。 我想獲得像如何根據sql server中一列的值進行分組並獲得行數

RequestType In-Progress Completed Total 
Type1   10   5   15 
Type2   10   10   20 

列表我集團通過使用2列(請求類型,狀態),但它並沒有給我確切的結果。

請幫我使用sql查詢。

在此先感謝 李蘇濱

+0

價值觀'Status'欄是固定的或新的狀態能在將來添加 –

+0

也會在此處顯示您的狀態列 –

+0

只顯示與您的結果不匹配的結果ctations。 – rbr94

回答

1

一種方式做到這一點是使用條件aggrigation:

SELECT RequestType, 
     SUM(CASE WHEN Status = 'In-Progress' THEN 1 ELSE 0 END) As 'In-Progress', 
     SUM(CASE WHEN Status = 'Completed' THEN 1 ELSE 0 END) As 'Completed', 
     COUNT(Status) As 'Total' 
FROM TableName 
WHERE Status IN('In-Progress', 'Completed') 
GROUP BY RequestType 
1

使用PIVOT

select *, [In-Progress]+[Completed] total 
from TableName 
pivot (count(status) for status in ([In-Progress], [Completed])) as p 
相關問題