Microsoft Access - 表中的SQL Distinct引用

时间:2011-08-17 21:58:16

标签: sql ms-access vba

对不起,如果已经回答了这个问题。我环顾四周,但没有发现任何真正有用的东西。

基本上,我想在访问

的表格中的列中获取基于distinct的所有数据

所以我写了以下代码:

Set rs = CurrentDb.OpenRecordset("select * from table t where t.refnum IN (select distinct refnum from table)")

这在sql中很有意义,但我无法在Access中获得所需的结果。

2 个答案:

答案 0 :(得分:2)

你内心的疑问是截然不同的。但是你的外部查询无法区分它: - )。

*表示您需要表格中的每个字段。如果您在该级别有重复记录,那么您有一个没有唯一记录ID的表,可能是一个糟糕的设计。

无论如何 - 一个明显的回报是这样的:

Set rs = CurrentDb.OpenRecordset("SELECT min(refnum), [field1], [field2] FROM table GROUP BY [field1], [Field2])

你不需要像你拥有的内部/外部查询 - 就这样。

另外 - 只是标准建议 - 您最好列出字段,而不是使用*。

修改
我将group by添加到上面的sql中。此外,您现在需要列出字段 - 不能使用*。另外,请记住您聚合的字段(例如refnum,当您在其上使用min()时)不应列在GROUP BY中。

答案 1 :(得分:0)

设置rs = CurrentDb.OpenRecordset(“select * from table t where t.refnum IN(通过refnum从表组中选择refnum)”)