我有下表名为Orders
Order | Date | Total
------------------------------------
34564 | 03/05/2015| 15.00
77456 | 01/01/2001| 3.00
25252 | 02/02/2008| 4.00
34564 | 03/04/2015| 7.00
我正在尝试按顺序#选择不同的顺序总和总数和组,问题是它显示34564的两个记录,因为它们是不同的日期..如何重复订单并且只选择max(date) - 但是这两个实例的总和是基数?
I.E结果
Order | Date | Total
------------------------------------
34564 | 03/05/2015| 22.00
77456 | 01/01/2001| 3.00
25252 | 02/02/2008| 4.00
尝试:
SELECT DISTINCT Order, Date, SUM(Total)
FROM Orders
GROUP BY Order, Date
如果你能看到上面的胜利,但我不知道如何实现我想要的目标。
答案 0 :(得分:4)
SELECT [order], MAX(date) AS date, SUM(total) AS total
FROM Orders o
GROUP BY [order]
答案 1 :(得分:3)
您可以使用MAX
汇总功能选择每个Date
群组中显示的最新Order
:
SELECT Order, MAX(Date) AS Date, SUM(Total) AS Total
FROM Orders
GROUP BY Order
答案 2 :(得分:2)
最简单的查询应该是:
SELECT MAX(Order), MAX(Date), SUM(Total)
FROM Orders
答案 3 :(得分:1)
您可以同时使用SUM
和MAX
:
SELECT
[Order],
[Date] = MAX([Date]),
Total = SUM(Total)
FROM tbl
GROUP BY [Order]
建议,请不要使用Order
和Date
等保留字来表示列和表名。
答案 4 :(得分:1)
只需将MAX(Date)添加到SELECT子句即可。 试试这个:
SELECT DISTINCT Order, MAX(Date), SUM(Total)
FROM Orders
GROUP BY Order, Date