大家帮我看看要怎么实现
其中
业务量 文本 计算开始日期到截止日期的累计业务量。
每天的业务量指在当天结束的流程数量。
机构为总行时,显示作业中心的业务量;机构为作业中心时,显示其负责分行的业务量;机构为分行时,显示其辖内支行的业务量
占比(列) 文本 本类业务量占总业务量(含前后台业务量)的比例
前台业务占比(行) 文本 各分行前台业务量小计占前台总业务量的比例
后台业务占比(行) 文本 各分行后台业务量小计占后台总业务量的比例
合计业务占比(行) 文本 各分行前后台业务量合计占前后台总业务量的比例
select d1.*,
trunc((d1.合计) * 100 /
(select sum(t1.biz_amt)
from RPT_BIZ_AMOUNT_STATUS_STAT t1, PARAM_TRAN t2
where t1.tran_id = t2.tran_id),
2) || '%' as 占比
from (select e.*
from (select t1.TRAN_ID || ' - ' || t2.tran_name as 业务种类,
sum(case t1.org_id
when '11701' then
t1.BIZ_AMT
else
0
end) as 福建营业部,
sum(case t1.org_id
when '11702' then
t1.BIZ_AMT
else
0
end) as 上海营业部,
sum(t1.BIZ_AMT) as 合计,
t2.parent_id
from RPT_BIZ_AMOUNT_STATUS_STAT t1, PARAM_TRAN t2
where t1.tran_id = t2.tran_id
group by t2.parent_id,
t1.TRAN_ID,
t2.tran_name,
t1.rpt_dt,
t1.CYCLE_CD,
t1.org_id) e) d1业务种类 | 福建营业部 | 上海营业部 | 合计| 占比 |parent_id |
33210 - 大额支付系统汇出 | 2 | 0 | 2 |50% |0 |
33250 - 系统内汇出 | 1 | 0 | 1 |25% |0 |
22220 - 输入账号入账(大额) | 0 | 1 | 1 |25% |1 |
要实现下面的报表
其中
业务量 文本 计算开始日期到截止日期的累计业务量。
每天的业务量指在当天结束的流程数量。
机构为总行时,显示作业中心的业务量;机构为作业中心时,显示其负责分行的业务量;机构为分行时,显示其辖内支行的业务量
占比(列) 文本 本类业务量占总业务量(含前后台业务量)的比例
前台业务占比(行) 文本 各分行前台业务量小计占前台总业务量的比例
后台业务占比(行) 文本 各分行后台业务量小计占后台总业务量的比例
合计业务占比(行) 文本 各分行前后台业务量合计占前后台总业务量的比例
select d1.*,
trunc((d1.合计) * 100 /
(select sum(t1.biz_amt)
from RPT_BIZ_AMOUNT_STATUS_STAT t1, PARAM_TRAN t2
where t1.tran_id = t2.tran_id),
2) || '%' as 占比
from (select e.*
from (select t1.TRAN_ID || ' - ' || t2.tran_name as 业务种类,
sum(case t1.org_id
when '11701' then
t1.BIZ_AMT
else
0
end) as 福建营业部,
sum(case t1.org_id
when '11702' then
t1.BIZ_AMT
else
0
end) as 上海营业部,
sum(t1.BIZ_AMT) as 合计,
t2.parent_id
from RPT_BIZ_AMOUNT_STATUS_STAT t1, PARAM_TRAN t2
where t1.tran_id = t2.tran_id
group by t2.parent_id,
t1.TRAN_ID,
t2.tran_name,
t1.rpt_dt,
t1.CYCLE_CD,
t1.org_id) e) d1业务种类 | 福建营业部 | 上海营业部 | 合计| 占比 |parent_id |
33210 - 大额支付系统汇出 | 2 | 0 | 2 |50% |0 |
33250 - 系统内汇出 | 1 | 0 | 1 |25% |0 |
22220 - 输入账号入账(大额) | 0 | 1 | 1 |25% |1 |
要实现下面的报表
解决方案 »
- ORACLE中一个数据库是不是只能包含一个实例?
- 触发器错误
- 请大家推荐ORACLE好书
- 包调用问题,大家帮忙看看?
- oracle jdbc 问题
- 关于游标FOR循环中执行动态SQL
- 如何把当前时间截为以刻为单位
- ORA-01795 maximum number of expressions in a list is 1000
- 有高手在c++中用Odatabase (oracle 公司提供的oledb)访问数据库嘛?
- oracle APEX 中item 设置为popup LOV类型,如何实现从表中获取可选的VALUE值并可编辑添加新的值
- 关于插入表中的数据不一致问题
- [求助]请教一个关于循环更新的SQL问题
其中
业务量 文本 计算开始日期到截止日期的累计业务量。
每天的业务量指在当天结束的流程数量。
机构为总行时,显示作业中心的业务量;机构为作业中心时,显示其负责分行的业务量;机构为分行时,显示其辖内支行的业务量
占比(列) 文本 本类业务量占总业务量(含前后台业务量)的比例
前台业务占比(行) 文本 各分行前台业务量小计占前台总业务量的比例
后台业务占比(行) 文本 各分行后台业务量小计占后台总业务量的比例
合计业务占比(行) 文本 各分行前后台业务量合计占前后台总业务量的比例
select d1.*,
trunc((d1.合计) * 100 /
(select sum(t1.biz_amt)
from RPT_BIZ_AMOUNT_STATUS_STAT t1, PARAM_TRAN t2
where t1.tran_id = t2.tran_id),
2) || '%' as 占比
from (select e.*
from (select t1.TRAN_ID || ' - ' || t2.tran_name as 业务种类,
sum(case t1.org_id
when '11701' then
t1.BIZ_AMT
else
0
end) as 福建营业部,
sum(case t1.org_id
when '11702' then
t1.BIZ_AMT
else
0
end) as 上海营业部,
sum(t1.BIZ_AMT) as 合计,
t2.parent_id
from RPT_BIZ_AMOUNT_STATUS_STAT t1, PARAM_TRAN t2
where t1.tran_id = t2.tran_id
group by t2.parent_id,
t1.TRAN_ID,
t2.tran_name,
t1.rpt_dt,
t1.CYCLE_CD,
t1.org_id) e) d1业务种类 | 福建营业部 | 上海营业部 | 合计| 占比 |parent_id |
33210 - 大额支付系统汇出 | 2 | 0 | 2 |50% |0 |
33250 - 系统内汇出 | 1 | 0 | 1 |25% |0 |
22220 - 输入账号入账(大额) | 0 | 1 | 1 |25% |1 |
其中parent_id 为0代表前台业务,1代表后台业务要实现下面的报表
业务种类 业务量 合 计 占比
福 上
建 海
营 营
业 业
部 部
11110 - 个人客户修改 2 1 3 75%
……
……
前台业务小计
前台业务占比
22200 - 支付报文处理 1 0 1 25%
……
……
后台业务小计
后台业务占比
合计
合计业务占比
其中
业务量 文本 计算开始日期到截止日期的累计业务量。
每天的业务量指在当天结束的流程数量。
机构为总行时,显示作业中心的业务量;机构为作业中心时,显示其负责分行的业务量;机构为分行时,显示其辖内支行的业务量
占比(列) 文本 本类业务量占总业务量(含前后台业务量)的比例
前台业务占比(行) 文本 各分行前台业务量小计占前台总业务量的比例
后台业务占比(行) 文本 各分行后台业务量小计占后台总业务量的比例
合计业务占比(行) 文本 各分行前后台业务量合计占前后台总业务量的比例
select d1.*,
trunc((d1.合计) * 100 /
(select sum(t1.biz_amt)
from RPT_BIZ_AMOUNT_STATUS_STAT t1, PARAM_TRAN t2
where t1.tran_id = t2.tran_id),
2) || '%' as 占比
from (select e.*
from (select t1.TRAN_ID || ' - ' || t2.tran_name as 业务种类,
sum(case t1.org_id
when '11701' then
t1.BIZ_AMT
else
0
end) as 福建营业部,
sum(case t1.org_id
when '11702' then
t1.BIZ_AMT
else
0
end) as 上海营业部,
sum(t1.BIZ_AMT) as 合计,
t2.parent_id
from RPT_BIZ_AMOUNT_STATUS_STAT t1, PARAM_TRAN t2
where t1.tran_id = t2.tran_id
group by t2.parent_id,
t1.TRAN_ID,
t2.tran_name,
t1.rpt_dt,
t1.CYCLE_CD,
t1.org_id) e) d1
以上sql查询可以实现下面,现在要对以下进行统计业务种类 | 福建营业部 | 上海营业部 | 合计| 占比 |parent_id |
33210 - 大额支付系统汇出 | 2 | 0 | 2 |50% |0 |
33250 - 系统内汇出 | 1 | 0 | 1 |25% |0 |
22220 - 输入账号入账(大额) | 0 | 1 | 1 |25% |1 |
其中parent_id 为0代表前台业务,1代表后台业务要实现下面的报表业务种类 业 务 量 合 计 占比
福 上
建 海
营 营
业 业
部 部
11110 - 个人客户修改 2 1 3 75%
……
……
前台业务小计
前台业务占比
22200 - 支付报文处理 1 0 1 25%
……
……
后台业务小计
后台业务占比
合计
合计业务占比
33210 | 2 |0 | 2 |50% |0 |
33250 | 1 |0 | 1 |25% |0 |
22220 | 0 | 1 | 1 |25% |1 |
其中parent_id 为0代表前台业务,1代表后台业务 要实现如下结果
业务种类 | 福建营业部 | 广东营业部 | 合计 | 占比 |
33210 | 2 | 0 | 2 |50% |
33250 | 1 | 0 | 1 |25% |
前台业务小计 | 3 | 0 | 3 |75% |
前台业务占比 |100% | | 3 |75% |22220 | 0 | 1 | 1 |25% |
后台业务小计 | 0 | 1 | 1 |25% |
后台业务占比 | 0% |100% | 1 |25% |
合计 | 3 | 1 | 4 |100% |
合计业务占比 |75% | 25% | 4 |100% |
33210 | 2 |0 | 2 |50% |0 |
33250 | 1 |0 | 1 |25% |0 |
22220 | 0 | 1 | 1 |25% |1 |
其中parent_id 为0代表前台业务,1代表后台业务 要实现如下结果
业务种类 | 福建营业部 | 广东营业部 | 合计 | 占比 |
33210 | 2 | 0 | 2 |50% |
33250 | 1 | 0 | 1 |25% |
前台业务小计 | 3 | 0 | 3 |75% |
前台业务占比 |100% | | 3 |75% |22220 | 0 | 1 | 1 |25% |
后台业务小计 | 0 | 1 | 1 |25% |
后台业务占比 | 0% |100% | 1 |25% |
合计 | 3 | 1 | 4 |100% |
合计业务占比 |75% | 25% | 4 |100% | 按这个来解决吧。我描述差了一些
前台业务占比(行) 文本 各分行前台业务量小计占前台总业务量的比例
后台业务占比(行) 文本 各分行后台业务量小计占后台总业务量的比例
合计业务占比(行) 文本 各分行前后台业务量合计占前后台总业务量的比例
下面的表数据就是如下。业务种类 |福建营业部|上海营业部 | 合计|占比 |parent_id |
33210 | 2 |0 | 2 |50% |0 |
33250 | 1 |0 | 1 |25% |0 |
22220 | 0 | 1 | 1 |25% |1 |
其中parent_id 为0代表前台业务,1代表后台业务 要实现如下统计结果
业务种类 | 福建营业部 | 广东营业部 | 合计 | 占比 |
33210 | 2 | 0 | 2 |50% |
33250 | 1 | 0 | 1 |25% |
前台业务小计 | 3 | 0 | 3 |75% |
前台业务占比 |100% | | 3 |75% |22220 | 0 | 1 | 1 |25% |
后台业务小计 | 0 | 1 | 1 |25% |
后台业务占比 | 0% |100% | 1 |25% |
合计 | 3 | 1 | 4 |100% |
合计业务占比 |75% | 25% | 4 |100% |
前台业务占比(行) 文本 各分行前台业务量小计占前台总业务量的比例
后台业务占比(行) 文本 各分行后台业务量小计占后台总业务量的比例
合计业务占比(行) 文本 各分行前后台业务量合计占前后台总业务量的比例
下面的表数据就是如下。业务种类 |福建营业部|上海营业部 | 合计|占比 |parent_id |
33210 | 2 |0 | 2 |50% |0 |
33250 | 1 |0 | 1 |25% |0 |
22220 | 0 | 1 | 1 |25% |1 |
其中parent_id 为0代表前台业务,1代表后台业务 要实现如下统计结果
with tb as(
select 33210 "业务种类", 2 "福建营业部",0 "上海营业部",
2 "合计",0.5 "占比" ,0 parent_id from dual union all
select 33250,1,0,1,0.25,0 from dual union all
select 22220,0,1,1,0.25,1 from dual)
--以上为提供数据,相当于你的表
select decode(grouping("业务种类"),1,decode(parent_id,0,'前台',1,'后台',null)||'合计',"业务种类
sum("福建营业部"),sum("上海营业部"),sum("合计"),sum("占比")
from tb
group by cube(parent_id,"业务种类")
order by parent_id,"业务种类"
业务种类 SUM("福建营业部") SUM("上海营业部") SUM("合计") SUM("占比")
---------------------------------------- ----------------- ----------------- ----------- -----------
33210 2 0 2 .5
33250 1 0 1 .25
前台合计 3 0 3 .75
22220 0 1 1 .25
后台合计 0 1 1 .25
22220 0 1 1 .25
33210 2 0 2 .5
33250 1 0 1 .25
合计 3 1 4 1
---------------------------------------- ----------------- ----------------- ----------- -----------
33210 2 0 2 .5
33250 1 0 1 .25
前台合计 3 0 3 .75
前台业务占比 100% 0% 3 75%
22220 0 1 1 .25
后台合计 0 1 1 .25
后台业务占比 0% 100% 1 25%
合计 3 1 4 1