我经常遇到这个问题,但这里有一个例子......
我有一个订单和交货表。每个订单可以有一对多的交货。
我需要根据订单表报告总计,但还需要逐行显示交货。
我可以轻松地为此编写 SQL 和相关的访问报告....
SELECT xxx
FROM
Order
LEFT OUTER JOIN
Delivery on Delivery.OrderNO = Order.OrderNo
直到我到达求和元素。我显然只想对每个订单求和一次,而不是该订单的 1 次交付。
e.g. The SQL might return the following based on 2 Orders (ignore the banalness of the report, this is very much simplified)
Region OrderNo Value Delivery Date
North 1 £100 12-04-2012
North 1 £100 14-04-2012
North 2 £73 01-05-2012
North 2 £73 03-05-2012
North 2 £73 07-05-2012
South 3 £50 23-04-2012
我想报告:
Total Sales North - £173
Delivery 12-04-2012
Delivery 14-04-2012
Delivery 01-05-2012
Delivery 03-05-2012
Delivery 07-05-2012
Total Sales South - £50
Delivery 23-04-2012
我指的是173英镑和50英镑的计算,其中第一个显然不应该是419英镑!
在过去,我使用过诸如 MAX 之类的东西(对于给定的订单),但这似乎是一种软糖。
对于这个看似常见的问题,肯定有一个固定的答案,但我找不到。
我不一定需要代码 - 只是在正确方向上的有用点。
非常感谢,
克里斯。