I have table RPT_DailySalesSummary with column CalDate, OrderID, SalesAmount, LocRecID.
CalDate OrderID SalesAmount LocRecID 2016-12-01 R101 100 81 2016-12-01 R102 120 81 2016-12-01 R113 150 82 2016-12-01 R104 130 85 2016-12-02 R205 250 81 2016-12-02 R106 104 82 2016-12-02 R112 80 85 2016-12-02 R032 80 85
I want to output below result table for sum by location id for each calendar date. (Notes: no. of locations is dynamic)
CalDate 81 82 85 Total 2016-12-01 220 150 130 500 2016-12-02 250 104 160 514 Total 470 254 290 1014
I wrote below code can output pivot table but no row and column totals.
DECLARE @cols NVARCHAR(MAX)=''
DECLARE @query NVARCHAR(MAX)=''
SELECT @cols = @cols + QUOTENAME(LocRecID) + ','
FROM (SELECT DISTINCT LocRecID FROM dbo.RPT_DailySalesSummary ) AS tmp
SELECT @cols = SUBSTRING(@cols, 0, LEN(@cols))
SET @query =
'SELECT * FROM
(
SELECT CalDate, SalesAmount, LocRecID
FROM dbo.RPT_DailySalesSummary
) src
PIVOT
(
SUM(SalesAmount) FOR LocRecID IN (' + @cols + ')
) piv'
execute(@query)
I feel difficult and not real understand how to use PIVOT. I don't know how continue the code to create my expect result.
Anyone can help? Thank a lot.