首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

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

2012-03-31 
关于 oracle rollup命令的讨论SQL codeselect to_char(a.startdate,yyyy), count(*)from V_MQBAODANCHEX

关于 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吧..没遇到过
[解决办法]
其它年份的数据也不一样,
你几次统计的原始数据有没有变化?

热点排行