我有一个 Access 数据库,由 3 个不同的人在场外使用;这个异地位置没有网络链接(也没有)。
我有三个相同的数据库,因此有三个相同的表。每个用户使用相同的主键填写信息。对于这个“食品评估”示例:
Item | Color | Timestamp
PERSON 1 (first database)
Carrot | Orange | 2012-12-21 13:00:00
Watermelon | Red | 2012-12-21 19:00:00 <--
Blueberry | Blue | 2012-12-21 17:00:00 <--
PERSON 2 (second database)
Carrot | Yellow | 2012-12-21 15:00:00 <--
Apple | Green | 2012-12-21 15:00:00 <--
PERSON 3 (third database)
Watermelon | Green | 2012-12-21 11:00:00
Apple | Red | 2012-12-21 14:00:00
Orange | Orange | 2012-12-21 15:00:00 <--
我需要输出一个表格:
Blueberry | Blue | 2012-12-21 17:00:00
Watermelon | Red | 2012-12-21 19:00:00
Carrot | Yellow | 2012-12-21 15:00:00
Apple | Green | 2012-12-21 15:00:00
Orange | Orange | 2012-12-21 15:00:00
所以,根据时间戳,我只需要选择一个重复项,但还要选择所有非重复项(项目是主键,唯一键)。我只是不能为我的生活得到这个 SQL.. 使用
SELECT Item, Color, MAX(timestamp)
FROM (SELECT ... FROM first
UNION SELECT ... FROM second
UNION SELECT ... FROM third)
GROUP BY Item, Color
但是由于它必须对 Color 进行分组才能获得 MAX 函数,因此它仍然会创建索引违规。
那么..我如何获得这个输出?