今天下午的主要任务就是让某几个report报表的某个字段里的结果按照另外模块自定义的方式排序。为解决这个问题,相应的数据库的表里有了一个sortorder字段,乍一看去,问题似乎简单得很:在sql语句里面加上一个order by tacticmarket.sortorder asc不就结了。
事实却是这个问题足足用了2个半小时才算解决,现在仍有一些地方需要慢慢明确。
pl/sql源代码如上所示。首先在order by后面添加一个tm.sortorder,运行时报错,group by is not a statement...
后来一想,果然不行,group by后面的项自然需要在select语句里面选择出来,否则选择何益?
可是随便添加一个选择变量会带来什么变故这个真不好说,对于可能会影响其余部分的少动为妙。
于是我就开始在这个rollup上下功夫了,这里兴许有门,于是我就尝试了一下,在rollup后面加了这样一句
rollup(tm.id,tm.sortorder),然后运行一下...居然可行了。
于是我就再次陷入纠结了,这是为什么呢?rollup看起来不该这么神奇的?然后又在网上搜了大半天,依旧不知所以然
这个明天再请教高手吧