生成报表的相关sql

一张(l 和 h是同一张表,起了不同的别名)保存了名称,机构编码,上级编码的机构编码表,通过sql语句进行加工,得到一张报表的行数据(横向多排),别且根据数据条件形成不同层次.

select code1, name1, name2
from ((select h.org||'00' code1,
l.name || ' ' name1,
h.name name2
from l
join h
on (l.org = h.orgtype)
where l.m=1 AND l.o = decode([CODE],'000000', '-1', [CODE])) union all
(select [CODE]||'00', '总计', '总计'
from dual
union all
select l.org||'00' code1,
l.name || ' ' name1,
'合计'||getNbsp(rownum) name2
from l
where l.m=1 AND l.org <> '000000'
and l.o = decode([CODE],'000000', '-1', [CODE]))
union all
select l.org||'01' code1,
l.name || ' ' name1,
l.name||decode([CODE],'000000','(责任单位)','(合作单位)') name2
from l
where l.m=1 AND l.o = decode([CODE],'000000', '-1',[CODE])
and l.org<>'000000'
union all

select l.org||'02' code1,
l.name||'(责任单位)' name1,
'合计' name2
from l
where l.mgrtype=1 AND l.org = decode([CODE],'000000', '-1',[CODE])
)
order by code1
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值