2

我正在使用以下语法在 SQLserver 2008 中运行一个 Pivot 查询,以了解表名 tbInflowMaster 中列名“PrevalidationStatus”的计数。我得到了答案,但是

空值计数未到来。它显示为 0 表示空值..我希望空值在查询的未处理字段中被计为未处理..请帮助我

我已经编写了以下查询,它适用于所有提交但不适用于 null

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   

我得到了这样的输出:

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'

4

1 回答 1

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

于 2013-11-09T16:28:12.597 回答