访问报告忽略查询中的DISTINCROW

时间:2011-03-30 20:37:22

标签: ms-access

我有一个从查询中获取数据的报告。查询本身在SQL中有DISTINCTROW。但是,当我使用查询作为报表的记录源时,它会输出数据,就好像DINSTINCTROW未在查询中进行了十进制(唯一记录)。

在选择查询作为报告的记录源时,是否有一些我忘记添加的选项? 我已经尝试将SQL代码复制并粘贴到报告记录源中,但没有区别。

查询结果:DISTINCT(与ALL相同)

A       B       C       D               
5669    7625    7625    $680.00
5677    7635    7635    $1,448.75
5757    7751    7751    $562.50
5776    7773    7773    $825.00
5796    7796    7796    $53.75
5810    7814    7814    $150.00

查询结果:DISTINCTROW

A       B       C       D           
5669    7625    7625    $156.25
5677    7635    7635    $30.00
5757    7751    7751    $180.00
5776    7773    7773    $15.00
5796    7796    7796    $31.25
5810    7814    7814    $120.00

3 个答案:

答案 0 :(得分:0)

如果在报告中,显示的字段不在详细信息部分中,而是在分组部分(如标题部分或页脚部分)中,则可能会发生这种情况。如果是这样,则报告仅显示分组值,即不同的值。

答案 1 :(得分:0)

如果查询的'unique values'属性设置为yes,或者查询的sql开始SELECT DISTINCT,则应该是这样。您确定自己没有在报告recordsource中进行其他加入吗?如果您从查询中创建一个新的空白报告,它是否只返回不同的行?


在回复您的评论时,如果基于查询的空白报表返回不同的行,则问题出在查询上。您是否检查了记录计数以查看它们是否匹配?也许它看起来像查询返回不同的行,但事实并非如此。 如果基于查询的空白报告返回了不同的行,另一方面,您可以确定您的查询是正常的,并且在报告中引入了其他行。


此外,DISTINCTDISTINCTROW会返回不同的结果 - 您需要DISTINCT,而不是DISTINCTROW。检查查询的'unique values'属性。


'unique values''unique rows'是两回事,您可以查看帮助文件。你想要'unique values'

答案 2 :(得分:0)

在查询中,将DISTINCTROW替换为DISTINCT。

参考:Prédicats ALL, DISTINCT, DISTINCTROW, TOP