ITPub博客

首页 > 数据库 > 数据库开发技术 > 报表中的每一行加上序列号,如何做到

报表中的每一行加上序列号,如何做到

原创 数据库开发技术 作者:moonsoft 时间:2019-04-10 18:42:03 0 删除 编辑
select rownum
from ...
where..
order by rownum

如果不分组的话,选出来的东西肯定是正确的,可是如果一旦分组, 第一个分组的每条记录的序列号和第二个分组的记录序列号乱起来,比如
第一个分组显示的记录是
1
2
3
6--4,5 记录为第2个分组的数据

然后在第2个分组里显示
4
5

能不能做到
分组1显示记录
1
2
3
4

分组2显示
1
2

好像很难实现吗
[@more@]

mehod 1: 如果没有分组排序得话可以直接用ROWNUM,如果有,可以用格式列先做一个数字型全局变量(用户参数)i,初始值为0;再做一个在当前组的公式列:i:=i+1;return(i);用公式列做序号就OK了!

method2:直接在SQL中加一个rownum,但是一定要按rownum来排序。


select rownum,
*
from your_table
where .....
order by 1

我采用了输入一个全局变量,然后再加一个公式列
:i=:i+1
return (i);
的方法,可是,分组的时候还是不行,比如有两个分组,
第一个分组的序列号是
1-30

而第二个分组也要是从1开始

可是现在却从31开始了

我觉得应该有个reset at 选项之类的,选择从哪个分组开始

你可以建两个SQL Query,第一个是用来分组的,另一个是其他数据,建一个关联就可以了。
如下图:



这是运行效果:


也可以建临时表什么的,先把需要的包括序号在内的全部数据都放进去,报表直接取自临时表就可以了。

另一种方法设置全局变量的那个估计也可以解决,但是...期待大家用更多方法灵活解决问题.
谢谢

http://218.16.125.28/oradev/bbs_content.jsp?bbs_sn=1483640&bbs_page_no=1&bbs_id=0010

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/226700/viewspace-837529/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2005-01-20

  • 博文量
    412
  • 访问量
    332351