繁体   English   中英

SQL查询多个求和和组

[英]SQL query Multiple Sums and Groups

我有下表,其中有不同日期的多种菜肴

[Dishes]
    Date                  |   Dish_Id    |  Quantity  |   Price   |   Total
============================================================================
2016-09-09 00:00:00.000          5             1           50.00       50.00
2016-09-09 00:00:00.000          3             1           30.00       30.00
2016-09-10 00:00:00.000          10            1          100.00      100.00
2016-09-09 00:00:00.000          5             1           50.00       50.00
2016-09-09 00:00:00.000          7             1           70.00       70.00
2016-09-09 00:00:00.000          7             1           70.00       70.00
2016-09-09 00:00:00.000          3             1           30.00       30.00
2016-09-10 00:00:00.000          3             1           30.00       30.00

我想做的是一个SQL查询,它将结合每个唯一/不同的Dish_Id并求和其等效的Quantities和Total,但按照Date值分组,而不影响其每项价格,因此,如果在上面的表上运行查询,它将产生以下结果集:

[Result]
    Date                  |   Dish_Id    |  Quantity  |   Price   |   Total
============================================================================
2016-09-09 00:00:00.000          5             2           50.00      100.00
2016-09-09 00:00:00.000          3             2           30.00       60.00
2016-09-09 00:00:00.000          7             2           70.00      140.00                
2016-09-10 00:00:00.000          10            1          100.00      100.00
2016-09-10 00:00:00.000          3             1           30.00       30.00

我确定GroupBy是正确的方法,但是我不确定如何对多个列进行sum()运算,而只是将groupby用于“日期”值而不影响“价格”

select Date, Dish_Id, sum(quantity), Price, Sum(Total)
from Dishes
group by Date, Price

编辑************现在感谢所有人使用

这个怎么样?

SELECT DATE
    ,dish_id
    ,sum(quantity) AS Quantity_Total
    ,sum(price * quantity) AS TotalPrice
FROM table1
GROUP BY DATE
    ,dish_id

在此处输入图片说明

参见此处的在线示例/沙盒http://rextester.com/OLAJ52246

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM