我正在 SQLserver 2008 中使用以下语法运行一个数据透视查询,以了解表名称 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”
最佳答案
您所需要做的就是将 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
关于sql-server - SQL Server 数据透视查询不采用空计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19878073/