Declare code

Post on 10-Feb-2016

213 views 0 download

description

code declare

Transcript of Declare code

DECLARE @cols AS NVARCHAR(MAX);DECLARE @query AS NVARCHAR(MAX);

SELECT @cols = STUFF((SELECT distinct ',' + QUOTENAME(Period) FROM temp FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,1,'');

SET @query = ' SELECT Description, ' + @cols + ' FROM ( SELECT CASE WHEN sumUnits > 0 THEN SumAvgRent / sumUnits ELSE 0 END AS Expr1, Description, Period FROM temp ) t PIVOT ( AVG(Expr1) FOR Period IN( ' + @cols + ') ) p ';

Execute(@query);Updated SQL Fiddle DemoThis should give you the same result:

| DESCRIPTION | PERIOD1 | PERIOD2 | PERIOD3 |---------------------------------------------| D1 | 10 | 0 | 20 || D2 | 100 | 1000 | 0 || D3 | 50 | 10 | 2 |