从MS Access中的JOIN中删除重复记录

时间:2015-10-14 15:50:59

标签: sql ms-access join deduplication

我的同事向我请求MS Access中一个连接三个表的查询的帮助。我已经确认JOIN的顺序和内部/外部状态是我的同事想要的。 (他们有三个表,A,B和C;他们想要表B中的所有记录以及来自A和C的匹配记录。)

(已消毒的)查询是:

SELECT B.ID, B.Date from (A RIGHT JOIN B on A.ID = B.ID) LEFT JOIN C on B.ID = C.ID
GROUP BY B.ID, B.Date

返回正确的行数(约16000)。但是,当我将select和group子句更改为

SELECT B.ID, B.Date, A.Time ...
GROUP BY B.ID, B.Date, A.Time 

然后查询返回重复记录(记录数约为19000)。如何改进查询以消除重复项?

This Stack Overflow answer帮助我找出表B的GROUP BY子句。我曾尝试将该子句视为GROUP BY B.ID,但收到的错误信息是我没有做过任何事情。与B.Date聚合。

1 个答案:

答案 0 :(得分:0)

它实际上是在生成重复记录,还是现在从同一天返回多个记录,这些记录有不同的时间?如果是这样,您将需要评估这些实际上是否为报告目的的重复记录。如果是,则需要在select子句中使用min(a.time)或max(a.time)等时间聚合时间(仅获取最早或最新的实例)并将其从组中删除。