2013-11-09 48 views
2

我在SQLserver 2008中運行一個數據透視查詢,使用下面的語法知道表名tbInflowMaster中列名'PrevalidationStatus'的計數。我得到的答案,但SQL服務器數據透視查詢沒有計入空數

計數爲空值不會到來,它顯示爲0爲空..我要空值被計爲未處理未處理的字段在查詢..請幫助我

我已經寫了下面的查詢它適用於所有的申請,但不是空

SELECT BuyerName, [Completed] AS Completed, [WIP] 
AS 
WIP, [Closed] AS Closed , ['NULL'] AS NotProcessd FROM (
    SELECT BuyerName,PrevalidationStatus FROM tbInflowMaster) ps 

PIVOT(Count (PrevalidationStatus) FOR PrevalidationStatus IN 
    ([Completed], [WIP], [Closed], ['NULL'])) 

AS pvt 

我outputas這樣的:

BuyerName   Completed WIP Closed NotProcessed 
aniruddha.gupta 1  0 0 0 
jintu.job   98  7 1 0 
jashin  130  10 31 0 
syed.sofi   76  6 44 0 
seena.lijosh  260  31 0 0 
deepak.khatua 55  6 3 0 
tuhin.choudhury 144  0 1 0 
shwetha.laxmi 133  5 5 0 

我的表「tbInflowMaster」的樣子下面(例如我已經展示了一些數據):

BuyerName  PrevalidationStatus 
seena.lijosh  Completed 
tuhin.choudhury  Completed 
tuhin.choudhury  NULL 
tuhin.choudhury  Completed 
jashin   Completed 
tuhin.choudhury  Completed 
tuhin.choudhury  Null 

我的表「tbInflowMaster」

+0

[在SQL Server SQL查詢透視問題(可能重複http://stackoverflow.com/questions/19877264/sql-pivot-query-問題在SQL服務器) –

+0

我在上面給了表和樣本數據結束..我需要從字段PrevalidationStatus中獲得空值的計數 – FaisalThayyil

回答

2

所有你需要的是與他們的「字符串表示」取代NULL值。

試試這個:

SELECT BuyerName, [Completed] AS Completed, [WIP] 
AS 
WIP, [Closed] AS Closed , [NULL] AS NotProcessd FROM (
    SELECT BuyerName, isnull(PrevalidationStatus, 'NULL') [PrevalidationStatus] FROM tbInflowMaster) ps 

PIVOT(Count (PrevalidationStatus) FOR PrevalidationStatus IN 
    ([Completed], [WIP], [Closed], [NULL])) 

AS pvt 

檢查SQLFiddle