私のコードは次のとおりです。がピボットにnull値を持つ動的な列を合計する
DECLARE @cols AS NVARCHAR(MAX)
SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.column_3)
FROM table_c c
where Code = 123
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
exec('SELECT column_1, ' + @cols + ' from
(
select column_1
, column_2
, column_3
From table_c where Code = 123
) x
pivot
(
sum(column_2)
for column_3 in(' + @cols + ')
) p
'
)
と私は唯一の列を@cols追加すると、合計などの新しい列に結果を持っています。これらの列はヌル値を持つことがあります。
私はより多くを説明してみましょう:
必要として私を与えるコードは、私は私の上記のコードでは
@cols = '[c.column_3_value_1],[c.column_3_value_1],...[c.column_3_value_N]'
を得た方法として、この
@sum_cols = 'ISNULL([c.column_3_value_1],0) + ISNULL([c.column_3_value_2],0) + ... + ISNULL([c.column_3_value_N],0)'
が好きSTH。
(この「c.column_3_value _...の任意の文字を持っており、定期的ではありませんでした)
と、このように私のexecのクエリでこの@sum_colsを使用します。私は理解していれば
exec('SELECT column_1, ' + @cols + ' , ' + @sum_cols + ' As sum from
(
select column_1
, column_2
, column_3
From table_c where Code = 123
) x
pivot
(
sum(column_2)
for column_3 in(' + @cols + ')
) p
'
)
タグを使用するDBMS。 (そのコードはANSI SQLにはありません) – jarlh