Keď sa snažím vymeniť, dostanem nasledujúce chybové hlásenie null
na zero
.
Názov stĺpca "jan" špecifikovaný v operátorovi PIVOT je v konflikte s existujúci názov stĺpca v argumentu PIVOT.
Dotaz nižšie:
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
odpovede:
1 pre odpoveď č. 1Mohli by ste ju použiť CTE
definovať nulové hodnoty a potom otočiť dáta takto:
;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
2 pre odpoveď č. 2
Je to ako chyba, že názvy stĺpcov sú nesprávne, pretože budú čítané ako bez názvu. Dajte im príslušné názvy:
select isnull(Jan,0), isnull(feb,0) from(select sum(data) as amount, [month]
from yourtable group by [month] )as p
pivot(
sum(amount) for [month] in(jan,feb)) as piv