【发布时间】:2013-10-22 09:17:34
【问题描述】:
我在很长一段时间内都在为这个特定的 Access 2010 SQL 查询苦苦挣扎。让我先给你看看我的桌子是什么样子的:
customerID value
123456789 100
123456789 -100
123456789 300
123456789 -300
123456789 150
123456789 -150
123456789 200
123456789 200
987654321 500
987654321 -500
987654321 200
987654321 -200
987654321 210
987654321 210
您会看到,一个 customerID 有多个条目,其中包含多个值。这些值可以是正的也可以是负的。负值表示更正,因此相应的正值“被归零”。
我现在需要查询的是每个 customerID 的所有最大值中的最大值。在上面的示例中,customerID 123456789 的最大值为 200,因为此 customerID 上的所有其他值相互抵消。 customerID 987654321 的最大值因此为 210。
最终,我的查询应该返回 210 作为每个 customerID 的所有最大值中的最大值,这些最大值没有被负值纠正/取消。
你能帮我解决这个问题吗?
编辑:向两个 customerID 添加(重复)值 200 和 210,以明确 SUM() 在这里不起作用。
编辑 #2:这是一些(几乎)真实生活数据:http://pastebin.com/TbNRTw5A
【问题讨论】:
标签: sql group-by ms-access-2010 max greatest-n-per-group