MsAccess SQL:如何防止选择查询重复

时间:2019-01-08 23:51:45

标签: sql ms-access-2007

我有一个Select查询(许多字段和一些计算的字段),该查询通过一个不重要的Where子句和Order By子句连接许多表。根据用户过滤器的不同,它可以基于其中一个联接表的ID返回重复记录。我想消除所有具有重复table1.ID值的结果行。

示例:

Select a.fld1, b.fld2, c.fld3, d.fld4 from (((tablea join tableb on a.x=b.x)
 join tablec on c.x=a.x) join tabled on d.x=a.x where blah-blah.

这将返回:

a.fld1, b.fld2, c.fld3, d.fld4
1, 2, 3, 4
1, 21, 3, 4
2, 2, 3, 4
2, 22, 3, 4

我想消除重复的a.fld1值引起的多余行。 b.fld2会有所不同,我不在乎其中哪些记录被遗漏了。但是我确实需要b.fld2中至少有一个值用于其他查找目的。

我似乎找不到一个很好的方法来做到这一点。

谢谢, 杰夫

1 个答案:

答案 0 :(得分:0)

(也许我通常可能会以注释的形式编写此提议的解决方案,但是目前,我仍然需要更高的声誉才能编写注释。)

仅查看输出,就好像可以使用已有的SQL并将其全部用作新SQL语句中的子查询一样,该SQL语句在第一个字段上进行分组(并获得第一个值或最小值或只要您认为适合其他字段,只要结果行中不同字段中的数据可能来自不同的记录,就可以了...