读书人

关于 oracle rollup命令的讨论,该如何

发布时间: 2012-03-31 13:13:26 作者: rapoo

关于 oracle rollup命令的讨论

SQL code
select to_char(a.startdate,'yyyy'), count(*)  from V_MQBAODANCHEXIAN_NEW_TUANDAN a where a.isdname like '%畅通%' and a.branchno = 'AEAE00' group by rollup (to_char(a.startdate,'yyyy'))

这个SQL,可以得出如下的结果
1200466
22005185
32006343
420071114
520081341
62009381970
72010183
8385202


SQL code
select to_char(a.startdate,'yyyy'), count(*)  from V_MQBAODANCHEXIAN_NEW_TUANDAN a where a.isdname like '%畅通%' and a.branchno = 'AEAE00' group by to_char(a.startdate,'yyyy')

同样这个SQL,但不要 rollup,得出的结果如如下,请仔细看2009那一行的数字
6200465
12005185
72006342
520071096
420081256
220091199
32010186

SQL code
select count(*)  from V_MQBAODANCHEXIAN_NEW_TUANDAN a where a.isdname like '%畅通%' and a.branchno = 'AEAE00'

而这个不分组的SQL,统计出来的的总行数是4329,说明第二个SQL统计的结果是正确的。

为什么加了rollup 统计的数据,连结果都不能保证证确性了昵


[解决办法]
再检查下where后的条件控制
如果两条语句的条件是一样的话,可能是bug吧..没遇到过
[解决办法]
其它年份的数据也不一样,
你几次统计的原始数据有没有变化?

读书人网 >oracle

热点推荐