Man*_*tto 6 sql sql-server sql-server-2008
当我尝试替换为时null,我收到以下错误消息zero。
PIVOT 运算符中指定的列名“jan”与 PIVOT 参数中的现有列名冲突。
查询如下:
select * from(select isnull(jan,0),isnull(feb,0),sum(data) as amount )as p
pivot(
sum(amount) for month in(jan,feb)) as piv
Run Code Online (Sandbox Code Playgroud)
您可以用来CTE定义空值,然后对数据进行透视,如下所示:
;WITH t
AS (
SELECT isnull(jan, 0) AS jan
,isnull(feb, 0) AS feb
,sum(data) AS amount
FROM your_table --change this to match your table name
GROUP BY jan,feb
)
SELECT *
FROM (
SELECT t.jan
,t.feb
,t.amount
FROM t
)
pivot(sum(amount) FOR [month] IN (
jan
,feb
)) AS piv
Run Code Online (Sandbox Code Playgroud)