I have a table like this :
MNUM EXP_TYP ExpenseLabel AMOUNT
572711 2 Taxes 7080
572711 3 Insurance 3730
572711 4 Electric 7800
572711 5 WaterIncome 6000
572711 7 Trash 2400
572711 8 Gardner 1200
572711 14 AnnOperExp 900
572741 2 Taxes 8400
572741 3 Insurance 1200
572741 5 WaterIncome 4800
572741 7 Trash 1200
572741 8 Gardner 1800
572741 11 RepairMaint 1200
572741 34 Pest 80
I want the result like this :
MNUM Taxes Insurance Electric WaterIncome Trash AnnOperExp RepairMaint Pest
572711 7080 3730 7800 6000 2400 900
572741 8400 1200 4800 1200 1200 80
This is what I tried :
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT ',' + QUOTENAME(ExpenseLabel)
from #TempExpensesTab
group by MNUM,ExpenseLabel,EXP_TYP,AMOUNT
order by EXP_TYP
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = N'SELECT ' + @cols + N' from
(
select ExpenseLabel, AMOUNT
from #TempExpensesTab
) x
pivot
(
max(AMOUNT)
for ExpenseLabel in (' + @cols + N')
) p '
exec sp_executesql @query;
I am getting the following error : "The column 'Taxes ' was specified multiple times for 'p'.
"
Thanks