对不起,如果已经回答了这个问题。我环顾四周,但没有发现任何真正有用的东西。
基本上,我想在访问
的表格中的列中获取基于distinct的所有数据所以我写了以下代码:
Set rs = CurrentDb.OpenRecordset("select * from table t where t.refnum IN (select distinct refnum from table)")
这在sql中很有意义,但我无法在Access中获得所需的结果。
答案 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)”)