2016-12-27 70 views
0

你好銷售以下查詢提供了以下的輸出:SQL查詢來獲取白天

Sales  RestaurantID Date 
100.00  1    2016-01-01 
200.00  1    2016-01-02 
300.00  1    2016-01-03 

的,我需要的日期值轉換爲列,並顯示每一天在總銷售額所以輸出應該是相反這樣

RestaurantID 2016-01-01 2016-01-02 2016-01-03  
1    100.00  200.00  300.00 

查詢

select sum(Sales),RestaurantID, dateadd(DAY,0, datediff(day,0, Date)) as Date 
from DailySales 
group by dateadd(DAY,0, datediff(day,0, Date)),RestaurantID 
+2

[轉換行,以使用SQL Server '透視' 欄目]可能的複製(http://stackoverflow.com/問題/ 15931607/convert-rows-to-columns-using-pivot-in-sql-server) – GurV

回答

0
declare @pivcol varchar(max) 
SELECT @pivcol = COALESCE(@pivcol + ',','') + '[' + date + ']'   
FROM DailySales 

exec('select * from DailySales 
pivot (sum(sales) for date in ('+ @pivcol +'))')       
+0

數據類型varchar(max)和日期在add運算符中不兼容。 – Ayman

+0

我們沒有在@pivcol中存儲日期我們正在爲條款 –

+0

存儲字符串仍然有同樣的錯誤 – Ayman

0

試試這個

SELECT * 
FROM Table_3 
PIVOT(SUM(Sales) 
FOR Date IN ([2016-01-01],[2016-01-02],[2016-01-03])) AS PVTTable 

OUTPUT:

enter image description here