2

テーブル名 tbInflowMaster の列名 'PrevalidationStatus' の数を知るために、以下の構文を使用して SQLserver 2008 で 1 つのピボット クエリを実行しています。答えは出ていますが、

null値のカウントが来ていません.nullの場合は0として表示されます..クエリの未処理フィールドでNull値を未処理としてカウントしたい..助けてください

以下のクエリを作成しましたが、すべてのフィールドに対して機能しますが、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 に答える