sql >> データベース >  >> RDS >> Sqlserver

動的ピボットSQLクエリでnull値を置き換える

    次のように、select ステートメント用に別の列リストを生成し、個々の月を ISNULL でラップする必要があります。

    DECLARE @cols AS NVARCHAR(MAX), @selectCols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX) SELECT @selectCols =STUFF((SELECT distinct ', ISNULL(' + QUOTENAME([MONTH] ) + ', 0) AS ' + QUOTENAME([MONTH])FROM [HEADCOUNT]WHERE [MONTH] BETWEEN '01-012018' AND '12-01-2018'ORDER BY ',' + QUOTENAME([MONTH])FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),1,1,'')SELECT @cols =STUFF((個別の ',' + QUOTENAME([月]) を選択) FROM [HEADCOUNT]WHERE [MONTH] BETWEEN '01-012018' AND '12-01-2018'ORDER BY ',' + QUOTENAME([MONTH])FOR XML PATH(''), TYPE).value('.' , 'NVARCHAR(MAX)'),1,1,'')SET @query ='SELECT [FTE/レートカード],' + @selectCols + ' FROM(SELECT [月],[FTE/レートカード],[ HC]FROM [HEADCOUNT]WHERE [CC-LOC] IN ([CC-LOC]) ) x pivot (Sum ([HC]) for [MONTH] in (' + @cols + '))p' execute(@query )  


    1. Oracleで2列のデータをA、B形式で取得する方法

    2. 部分的な結果データを配列にプッシュして送信します

    3. DLL「kernel32.dll」で「InterlockedIncrement」という名前のエントリポイントが見つかりません-[メール保護]64ビット

    4. debianlennyにpostgres9.0をインストールする