如何得到select后各行的标志(如当前行,前一行,后一行)?

骨骨 2006-05-25 11:43:32
SQL> select decode(area_code_group,1,'合计',area_code) area_name,
2 decode(area_code_group,0,decode(card_type_group,1,'大计',card_type),'') card_name,
3 decode(card_type_group,0,decode(product_id_group,1,'小计',product_id),'') product_name,
4 quantity,org_amount,amount
5 from
6 (
7 select area_code,grouping(area_code) area_code_group,
8 card_type,grouping(card_type) card_type_group,
9 product_id,grouping(product_id) product_id_group,
10 sum(total_quantity) quantity,
11 sum(total_org_amount)/100 org_amount,
12 sum(total_amount)/100 amount
13 from tab_test
14 where prov_code = '034'
15 and substrb(stat_date,1,6) = '200605'
16 and busi_id in (2,20)
17 and card_status = 0
18 group by rollup(area_code,card_type,product_id)
19 )
20 /

AREA_NAME CARD_NAME PRODUCT_NAME QUANTITY ORG_AMOUNT AMOUNT
---------------------------------------- --------- ------------ ---------- ---------- ----------
0 2 0126 40 2000 800
0 2 0128 2 200 80
0 2 小计 42 2200 880
0 4 0126 211 10550 4220
0 4 0128 31 3100 1240
0 4 小计 242 13650 5460
0 大计 284 15850 6340
25 4 0126 26 1300 520
25 4 0128 3 300 120
25 4 小计 29 1600 640
25 大计 29 1600 640
510 2 0126 2 100 40
510 2 小计 2 100 40
510 3 0128 1 100 40
510 3 小计 1 100 40
510 4 0126 9 450 180
510 4 0128 1 100 40
510 4 小计 10 550 220
510 大计 13 750 300
511 4 0126 2 100 40

AREA_NAME CARD_NAME PRODUCT_NAME QUANTITY ORG_AMOUNT AMOUNT
---------------------------------------- --------- ------------ ---------- ---------- ----------
511 4 小计 2 100 40
511 大计 2 100 40
512 4 0126 17 850 340
512 4 0128 1 100 40
512 4 小计 18 950 380
512 大计 18 950 380
513 4 0126 10 500 200
513 4 0128 1 100 40
513 4 小计 11 600 240
513 大计 11 600 240
514 2 0126 4 200 80
514 2 小计 4 200 80
514 4 0126 6 300 120
514 4 小计 6 300 120
514 大计 10 500 200
515 3 0126 1 50 20
515 3 小计 1 50 20
515 4 0126 6 300 120
515 4 0128 2 200 80
515 4 小计 8 500 200
515 大计 9 550 220
合计 416 23300 9320

70 rows selected

SQL>

...全文
142 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
子陌红尘 2006-05-25
  • 打赏
  • 举报
回复
:)
骨骨 2006-05-25
  • 打赏
  • 举报
回复
找到方法了:http://oracle.com.cn/viewthread.php?tid=4356
骨骨 2006-05-25
  • 打赏
  • 举报
回复
做报表时用到,就是说当当前行某字段同前一行时,当前行的该字段不显示!我现在就想得到这种效果:

AREA_NAME CARD_NAME PRODUCT_NAME QUANTITY ORG_AMOUNT AMOUNT
---------------------------------------- --------- ------------ ---------- ---------- ----------
0 2 0126 40 2000 800
0128 2 200 80
小计 42 2200 880
4 0126 211 10550 4220
0128 31 3100 1240
小计 242 13650 5460
大计 284 15850 6340
25 4 0126 26 1300 520
0128 3 300 120
小计 29 1600 640
大计 29 1600 640
510 2 0126 2 100 40
小计 2 100 40
3 0128 1 100 40
小计 1 100 40
4 0126 9 450 180
0128 1 100 40
小计 10 550 220
大计 13 750 300
511 4 0126 2 100 40
小计 2 100 40
大计 2 100 40
512 4 0126 17 850 340
0128 1 100 40
小计 18 950 380
大计 18 950 380
513 4 0126 10 500 200
0128 1 100 40
小计 11 600 240
大计 11 600 240
514 2 0126 4 200 80
小计 4 200 80
4 0126 6 300 120
小计 6 300 120
大计 10 500 200
合计 416 23300 9320

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧