这是我的数据库的简化版本
ID#
Date (Datetime)
Customer (Varchar)
Item (Varchar)
每个客户可以拥有多个商品,每一行都有一个唯一的日期时间戳。
我正在尝试编写一个查询,以显示属于每个客户的每个项目的最新条目
如果这没有意义,那可能会更好:
例如数据。
1 1/1/12 00:00:00 Cust1 Item1
2 2/1/12 00:00:00 Cust1 Item1
3 3/1/12 00:00:00 Cust1 Item2
4 2/1/12 00:00:00 Cust2 Item1
5 3/1/12 00:00:00 Cust2 Item1
6 4/1/12 00:00:00 Cust2 Item1
应该显示
2 2/1/12 00:00:00 Cust1 Item1
3 3/1/12 00:00:00 Cust1 Item2
6 4/1/12 00:00:00 Cust2 Item1
提前感谢您提供任何帮助
答案 0 :(得分:1)
你可以这样做:
SELECT a.*
FROM tbl a
JOIN (
SELECT MAX(ID) AS ID FROM tbl GROUP BY Customer, Item
) b ON a.ID = b.ID
每个客户获得最高ID
(假设它是一个自动递增的值,最高值也是最新的),并且因为它是唯一的,我们只需加入ID
上的同一个表列,仅返回每个客户的最新行。