Office中国论坛/Access中国论坛

标题: 求高手指点,交叉查询汇总出错 [打印本页]

作者: nbmos    时间: 2013-1-17 11:47
标题: 求高手指点,交叉查询汇总出错
本帖最后由 nbmos 于 2013-1-18 13:55 编辑

多表联合交叉查询时,汇总字段出错,具体见Qry11
目前采用3个查询变通完成,最后效果见QryReportAll
请大家指点




作者: huangli0356    时间: 2013-1-17 12:03
[attach]51132[/attach]
看下是不是你要的结果.?
作者: nbmos    时间: 2013-1-17 12:29
huangli0356 发表于 2013-1-17 12:03
看下是不是你要的结果.?

不是,你统计的是TabReportList明细中的数量,我要的是TabReport中的检查数量
作者: huangli0356    时间: 2013-1-17 17:20
那这样的话,你表的设置有些小小问题..
作者: nbmos    时间: 2013-1-18 13:53
huangli0356 发表于 2013-1-17 17:20
那这样的话,你表的设置有些小小问题..

什么问题呢?请指教
作者: roych    时间: 2013-1-18 15:03
每一个报表编号(Re-id)的记录全都统计了一遍,因如图所示:[attach]51159[/attach]
编号为9的总的检查数量应该是216,但是5条数据全都加起来之后自然就成了1080了,这也就是Qry11为什么出错的原因。由于交叉表查询里只能有一个“值”,因此你必须得用两个表才能把查询做好。
作者: nbmos    时间: 2013-1-20 19:02
roych 发表于 2013-1-18 15:03
每一个报表编号(Re-id)的记录全都统计了一遍,因如图所示:
编号为9的总的检查数量应该是216,但是5条数 ...

那怎么改善,效率高一点呢?求指点
作者: roych    时间: 2013-1-21 15:02
本帖最后由 roych 于 2013-1-21 15:12 编辑
nbmos 发表于 2013-1-20 19:02
那怎么改善,效率高一点呢?求指点

如果非要一步到位地用交叉表查询的话,要么修改表结构,要么更新检查数量字段。

1、修改表结构的话很简单,把TabReport的检查数量、合格数、不良数、不良率全都删掉(如有必要显示的话,后面三个全都可以用计算方式求出来的),在TabReportList里增加一个检查总数。——详见附件”方法1“
2、把TabReport里的检查数量按TabReportList的记录条数进行平均拆分,然后再总计。t的记录条数进行平均拆分,然后再总计。——详见附件方法2
需要注意的是,由于方法2拆分时字段为长整型,因此比实际略小。里面已经用代码更新过了,因此不必也不该再进行更新TabReport的数据了,否则就出错啦。
[attach]51182[/attach]
作者: 笑嘻嘻哦    时间: 2013-1-28 20:05
可惜我也不是高手啊


























欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3