Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从加入MS Access中删除重复记录_Sql_Ms Access_Join_Deduplication - Fatal编程技术网

Sql 从加入MS Access中删除重复记录

Sql 从加入MS Access中删除重复记录,sql,ms-access,join,deduplication,Sql,Ms Access,Join,Deduplication,我的同事向我寻求有关MS Access中联接三个表的查询的帮助。我已经确认加入的顺序和内部/外部状态是我的同事想要的。他们有三张桌子,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

我的同事向我寻求有关MS Access中联接三个表的查询的帮助。我已经确认加入的顺序和内部/外部状态是我的同事想要的。他们有三张桌子,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。如何改进查询以消除重复项


帮助我找出表B的GROUP BY子句。我尝试将该子句作为GROUP BY B.ID,但收到一条错误消息,表示我没有使用B.Date进行任何聚合。

它实际上是在生成重复记录,还是现在从同一日期返回多条具有不同时间的记录?如果是这样,您将需要评估这些记录是否真的是重复的,以用于您的报告目的。如果是,您将希望在select子句中使用类似mina.time或maxa.time的内容来聚合时间,以仅获取最早或最新的实例,并将其从组中排除。

告诉我们什么是重复?因为第二次查询有更多记录是正常的。您现在将[ìd,date]拆分为不同的[time],我们可以告诉您,结果中有相同数据的记录。我将再次检查以确认记录是否相同。我将评估记录是否包含重复数据。不,记录不是100%重复的-表A中的一个字段具有与表B中单个条目对应的多个条目的不同数据。