/ / Názov stĺpca "FirstName" zadaný v operátorovi PIVOT je v konflikte s existujúcim názvom stĺpca v argumentu PIVOT - sql, sql-server, sql-server-2008

Názov stĺpca "FirstName" zadaný v operátorovi PIVOT je v konflikte s existujúcim názvom stĺpca v argumentu PIVOT - sql, sql-server, sql-server-2008

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ď č. 1

Mohli 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