从 MS Access 中的 JOIN 删除重复记录
Removing duplicate records from JOIN in MS Access
我的同事请我帮忙在 MS Access 中连接三个 table 的查询。我已经确认 JOIN
的订单和 inner/outer 状态是我的同事想要的。 (他们有三个 table,A、B 和 C;他们想要来自 table 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
这returns正确的行数(大约16000)。但是,当我将 select 和组子句更改为
SELECT B.ID, B.Date, A.Time ...
GROUP BY B.ID, B.Date, A.Time
则查询returns条重复记录(记录数约19000条)。如何改进查询以消除重复项?
This Stack Overflow answer 帮我弄清楚了 table B 的 GROUP BY
子句。我试过这个子句只是 GROUP BY B.ID
,但收到一条错误消息,我没有未使用 B.Date
.
进行任何聚合
它实际上是在产生重复的记录,还是现在从同一日期返回多条时间不同的记录?如果是这样,您将需要评估这些是否实际上是您报告目的的重复记录。如果是,您将希望在 select 子句中使用诸如 min(a.time) 或 max(a.time) 之类的内容来汇总时间(仅获取最早或最新的实例)和将其排除在组之外。
我的同事请我帮忙在 MS Access 中连接三个 table 的查询。我已经确认 JOIN
的订单和 inner/outer 状态是我的同事想要的。 (他们有三个 table,A、B 和 C;他们想要来自 table 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
这returns正确的行数(大约16000)。但是,当我将 select 和组子句更改为
SELECT B.ID, B.Date, A.Time ...
GROUP BY B.ID, B.Date, A.Time
则查询returns条重复记录(记录数约19000条)。如何改进查询以消除重复项?
This Stack Overflow answer 帮我弄清楚了 table B 的 GROUP BY
子句。我试过这个子句只是 GROUP BY B.ID
,但收到一条错误消息,我没有未使用 B.Date
.
它实际上是在产生重复的记录,还是现在从同一日期返回多条时间不同的记录?如果是这样,您将需要评估这些是否实际上是您报告目的的重复记录。如果是,您将希望在 select 子句中使用诸如 min(a.time) 或 max(a.time) 之类的内容来汇总时间(仅获取最早或最新的实例)和将其排除在组之外。