用于按天获取销售额的Sql查询
您好,下面的查询提供以下输出:用于按天获取销售额的Sql查询,sql,sql-server,Sql,Sql Server,您好,下面的查询提供以下输出: 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
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
试试这个
SELECT *
FROM Table_3
PIVOT(SUM(Sales)
FOR Date IN ([2016-01-01],[2016-01-02],[2016-01-03])) AS PVTTable
输出:
数据类型varchar(max)和date的可能重复项在add运算符中不兼容。我们不是在@pivcol中存储日期,而是在in子句中存储字符串
SELECT *
FROM Table_3
PIVOT(SUM(Sales)
FOR Date IN ([2016-01-01],[2016-01-02],[2016-01-03])) AS PVTTable