pivot - Pivoting in SQL Server 2008 -


this sql script pivoting

declare @canvassquery nvarchar(max) declare @suppliername nvarchar(max)  select      @suppliername= isnull(@suppliername + ',','') + quotename(suppliername)      (select distinct suppliername       dpiitemcs_detailed) supplier  set @canvassquery =  n'select itemdescription, ' + @suppliername + '                        dpiitemcs_detailed                        pivot(sum(unitcost) suppliername in (' + @suppliername + '))  canvasstable'  exec sp_executesql @canvassquery 

the output is

+-------------+-----------+------------+-----------+ | description | supplier1 | supplier2  | supplier3 | +-------------+-----------+------------+-----------+ | item 1      | 28.25     | null       | null      | | item 1      | null      | 28.50      | null      | | item 1      | null      | null       | 28.75     | +-------------+-----------+------------+-----------+ 

i want output be

+-------------+-----------+-----------+-----------+ | description | supplier1 | supplier2 | supplier3 | +-------------+-----------+-----------+-----------+ | item 1      | 28.25     | 28.50     | 28.75     | +-------------+-----------+-----------+-----------+ 

what correct sql statement pivoting output?

without seeing table structure, i'm guessing have column in dpiitemcs_detailed unique (maybe id column) being used when grouping pivot. in order fix this, want use subquery in pivot code. code should be:

declare @canvassquery nvarchar(max) declare @suppliername nvarchar(max)  select      @suppliername= isnull(@suppliername + ',','') + quotename(suppliername)      (select distinct suppliername       dpiitemcs_detailed) supplier  set @canvassquery =  n'select itemdescription, ' + @suppliername + '                                               (                          select itemdescription, unitcost, suppliername                          dpiitemcs_detailed                        ) d                        pivot(sum(unitcost)                         suppliername in (' + @suppliername + '))  canvasstable'  exec sp_executesql @canvassquery 

when using pivot, want include columns needed final select list , pivot aggregation in dataset - including other columns potentially skew result.


Comments

Popular posts from this blog

How to connect android app to App engine -

gcc - MinGW's ld cannot perform PE operations on non PE output file -

php - display validation error message next to the textbox in codeigniter -