このアンピボット テーブルがあり、適用されているフィルターを削除したいと考えています。
DECLARE @colsPivot AS NVARCHAR(MAX),
@colsUnpivot as NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @colsPivot = STUFF((SELECT distinct ',' + QUOTENAME(year(EcoDate))
from PhdRpt.RptCaseEco
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
select @colsUnpivot = stuff((select ','+quotename(C.name)
from sys.columns as C
where C.object_id = object_id('PhdRpt.RptCaseEco')
and C.name Like 'Net%'
for xml path('')), 1, 1, '')
set @query
= 'select *
from
(
select reportruncaseid, year(Ecodate) as EcoYear, val, col
from phdrpt.rptcaseeco
unpivot
(
val
for col in ('+ @colsUnpivot +')
) u
) x1
pivot
(
max(val)
for ecoyear in ('+ @colspivot +')
) p ORDER BY reportruncaseid'
exec(@query)
以前は、すべての列に「Net」というプレフィックスが付いていたため、このテーブルは機能していましたが、「Net」で始まらないために除外されている他の列があります。--- および C.name Like 'Net%' --- を削除しようとしましたが、次のエラーが発生し続けます。
Msg 8167, Level 16, State 1, Line 10
The type of column "EcoDate" conflicts with the type of other columns specified in the UNPIVOT list.
Msg 207, Level 16, State 1, Line 4
Invalid column name 'reportruncaseid'.
Msg 207, Level 16, State 1, Line 4
Invalid column name 'Ecodate'.
テーブルはこんな感じ