先看一个简单的涉及排名的表:

这里排名的实现方法有三种:
1、在数据库里做一个临时表,预先硬算。或者写存储过程之类的。注意,这种表很多时候,是涉及输入条件的,所以需要根据输入的条件临时计算。这种方法比较麻烦,缺点很多,但优点是对报表工具本身没什么要求。
2、有些报表工具有“排名函数”,应该比较容易实现。但排名函数很多情况下不容易处理很复杂的情况,参见下文。
3、象润乾报表,有层次座标的支持,这种计算就比较简单了,可以比较灵活地进行这种计算。
下面是一个涉及排名的更复杂的例子,由此可见排名函数很多时候仍然有困难。

这里的排名,不光有班级内的排名,而且有大排名,使用简单的排名函数就困难了。由此也可以看出,报表中的问题,是千变万化的,仅仅使用打补丁的方法,会不断有新漏洞出来,这就如同算术里面,有什么鸡兔同笼,但真正彻底的办法,是引入代数,引入方程。上面这个例子也是一样,只有通过层次座标,更灵活地引用单元格,才能很方便地制作这种报表。 |