From d98b9b5821506bac948e9518ec6385a941053c25 Mon Sep 17 00:00:00 2001 From: yangkunan Date: Sun, 21 Sep 2025 17:30:58 +0800 Subject: [PATCH] =?UTF-8?q?=E9=93=B6=E8=A1=8C=E8=B4=9F=E5=80=BA+=E8=B5=84?= =?UTF-8?q?=E9=87=91=E4=BD=99=E9=A2=9D=E7=9B=B8=E5=85=B3=E5=8F=96=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FineReport/财务主题/看板/资金管理驾驶舱.sql | 1340 +++++++++++++------ 1 file changed, 958 insertions(+), 382 deletions(-) diff --git a/FineReport/财务主题/看板/资金管理驾驶舱.sql b/FineReport/财务主题/看板/资金管理驾驶舱.sql index 52e5a4b..a3c7458 100644 --- a/FineReport/财务主题/看板/资金管理驾驶舱.sql +++ b/FineReport/财务主题/看板/资金管理驾驶舱.sql @@ -2072,201 +2072,201 @@ FROM calc_base ; -- 各项目收入 +-- 数据源来自BI报表【资金计划执行】 -with rlt as ( - SELECT decode(trade_direction,'票据变现收入','支出',trade_direction) as trade_direction, - (CASE WHEN trade_direction = '收入' - then - (case when plan_item_name = '对外销售酒类回款' AND corp_code <> '0201' - then '成品酒销售回款' - when plan_item_name = '对外销售酒类回款' AND corp_code = '0201' - then '散酒销售回款' - when plan_item_name in ('保证金','共建基金') or (plan_item_name='其他收入(含未确认收入)' and trade_item IN ('红包充值费用','转货款')) - then '红包款/转货款/保证金/共建' - when plan_item_name IN('取得贷款','开票') - then '银行融资' - when plan_item_name IN('搬迁补偿/政府补助','政府返还及补助') - then '政府返还及补助' - when plan_item_name='票据变现收入' - then '其他(捐赠等)' - when plan_item_name IN('对外销售非酒类回款','吸收投资','税费返还','其他收入(含未确认收入)','利息收入') and nvl(trade_item,'x') not IN ('红包充值费用','转货款') - then '其他零星收款' end) - WHEN trade_direction = '支出' - then (case when plan_item_name in('原材料','辅料','低值易耗') - then '原辅低耗材料' - when plan_item_name in('散酒') - then '外购散酒' - when plan_item_name in('外购包材','外协加工费') - then '外购包材/外协加工' - when plan_item_name in('其它制造费用','水电气费') - then '制造费用/能源费用' - when plan_item_name in('广告费','市场活动投入','其它销售费用','委外服务(体验体系)','酒店采购','储运费') - then '广告/市场活动/庄园采购/储运' - when plan_item_name in('退共建基金') - then '共建支出' - when plan_item_name in('退经销商货款') - then '经销商退款' - when plan_item_name in('职工薪酬及福利') - then '薪酬及福利' - when plan_item_name in('税费') - then '税金缴纳' - when plan_item_name in('其它管理费用','财务手续费用','研发费用') - then '管理费用/研发费用' - when plan_item_name in ('土地支出','土建支出','利息支出','分配股利') - then plan_item_name - when plan_item_name in('设备支出','维修支出') - then '设备及维修支出' - when plan_item_name in('偿还贷款','开票兑付') - then '归还贷款' - else '其他(捐赠等)' end ) - else plan_item_name - end ) as fud_project_item, +with tb as (select a.stat_date, + c.corp_short_name, + a.trade_direction, + a.indi_type, + a.plan_item_class, + a.plan_item_name, + a.trade_item, + a.amt + from dm.dm_fim_fud_indicator a + inner join dwr.dim_corp c on a.corp_code=c.corp_code and c.corp_group='股份' + where a.indi_type = '执行' + -- ${if(sStatisticCaliber="年度预算执行","","and if(a.plan_item_name in ('内部调拨收入','内部调拨支出') and a.indi_type='计划',0,1)=1")} - case when plan_item_name in ('票据变现收入','票据变现支出') - then '票据贴现费用' - when plan_item_name='其他收入(含未确认收入)' - then if(nvl(trade_item,'x') IN ('红包充值费用','转货款','窜货款'),trade_item,'其他') - else plan_item_name end as plan_item_name, - if(plan_item_name='其他收入(含未确认收入)' ,decode(trade_item,'转货款',12.1,'红包充值费用',12.2,'窜货款',12.3,st.sorted_no),nvl(st.sorted_no,99)) as srt, - SUM(CASE WHEN stat_date = '${sStart_date}' -- 当前统计时间 - THEN amt ELSE 0 END) / 10000 AS today_amt -- 本日 - ,SUM(CASE WHEN to_char(stat_date,'yyyy-MM') = '${sStart_mon}' -- 当前统计时间 - THEN amt ELSE 0 END) / 10000 AS month_amt -- 本月累计 - ,SUM(CASE WHEN to_char(stat_date,'yyyy') = '${sStart_year}' - THEN amt ELSE 0 END) / 10000 AS year_amt -- 本年累计 - - ,SUM(CASE WHEN stat_date = '${YEARDELTA(sStart_date,-1)}' -- 当前统计时间 - THEN amt ELSE 0 END) / 10000 AS last_year_day_amt -- 去年同期本日 - ,SUM(CASE WHEN to_char(stat_date,'yyyy-MM') = '${LEFT(YEARDELTA(CONCATENATE(sStart_mon,"-01"),-1),7)}' - THEN amt ELSE 0 END) / 10000 AS last_year_mon_amt -- 去年同期本月累计 - ,SUM(CASE WHEN to_char(stat_date,'yyyy') = '${YEAR(YEARDELTA(CONCATENATE(sStart_year,"-01-01"),-1))}' -- and stat_date <= date '${YEARDELTA(sStart_date,-1)}' - THEN amt ELSE 0 END) / 10000 AS last_year_amt -- 去年同期累计 - FROM dm.dm_fim_fud_indicator fp - left join sdi_xdata.mdm_dim_sorted st on fp.plan_item_name=st.sorted_value and st.sorted_type='资金项目' - where fp.trade_direction IN('收入','支出') - and fp.indi_type='执行' --- and NVL(fp.owner_bank_account,'1') <> '22195101040012008' - AND fp.plan_item_name NOT IN ('内部调拨支出','内部调拨收入') - and EXISTS ( - SELECT - 1 - FROM - dm.dm_bi_user_permisson - WHERE - bi_user = '${fine_username}' - AND per_model IN ('all','fim') - AND ( - is_all = 1 - OR per_code = fp.corp_code - ) - ${IF(LEN(sCorp)!=0," AND fp.corp_code IN ('"+ sCorp +"')", "")} - ) - - AND stat_date >= date '${DATEINYEAR(YEARDELTA(sStart_date,-1),1)}' -- 上年年初 - -- and stat_date<= date '${sStart_date}' -- 当前统计时间 - group by - (CASE WHEN trade_direction = '收入' - then - (case when plan_item_name = '对外销售酒类回款' AND corp_code <> '0201' - then '成品酒销售回款' - when plan_item_name = '对外销售酒类回款' AND corp_code = '0201' - then '散酒销售回款' - when plan_item_name in ('保证金','共建基金') or (plan_item_name='其他收入(含未确认收入)' and trade_item IN ('红包充值费用','转货款')) - then '红包款/转货款/保证金/共建' - when plan_item_name IN('取得贷款','开票') - then '银行融资' - when plan_item_name IN('搬迁补偿/政府补助','政府返还及补助') - then '政府返还及补助' - when plan_item_name='票据变现收入' - then '其他(捐赠等)' - when plan_item_name IN('对外销售非酒类回款','吸收投资','税费返还','其他收入(含未确认收入)','利息收入') and nvl(trade_item,'x') not IN ('红包充值费用','转货款') - then '其他零星收款' end) - WHEN trade_direction = '支出' - then (case when plan_item_name in('原材料','辅料','低值易耗') - then '原辅低耗材料' - when plan_item_name in('散酒') - then '外购散酒' - when plan_item_name in('外购包材','外协加工费') - then '外购包材/外协加工' - when plan_item_name in('其它制造费用','水电气费') - then '制造费用/能源费用' - when plan_item_name in('广告费','市场活动投入','其它销售费用','委外服务(体验体系)','酒店采购','储运费') - then '广告/市场活动/庄园采购/储运' - when plan_item_name in('退共建基金') - then '共建支出' - when plan_item_name in('退经销商货款') - then '经销商退款' - when plan_item_name in('职工薪酬及福利') - then '薪酬及福利' - when plan_item_name in('税费') - then '税金缴纳' - when plan_item_name in('其它管理费用','财务手续费用','研发费用') - then '管理费用/研发费用' - when plan_item_name in ('土地支出','土建支出','利息支出','分配股利') - then plan_item_name - when plan_item_name in('设备支出','维修支出') - then '设备及维修支出' - when plan_item_name in('偿还贷款','开票兑付') - then '归还贷款' - else '其他(捐赠等)' end ) - else plan_item_name - end ), - case when plan_item_name in ('票据变现收入','票据变现支出') - then '票据贴现费用' - when plan_item_name='其他收入(含未确认收入)' - then if(nvl(trade_item,'x') IN ('红包充值费用','转货款','窜货款'),trade_item,'其他') - else plan_item_name end, - if(plan_item_name='其他收入(含未确认收入)' ,decode(trade_item,'转货款',12.1,'红包充值费用',12.2,'窜货款',12.3,st.sorted_no),nvl(st.sorted_no,99)), - decode(trade_direction,'票据变现收入','支出',trade_direction) - union all - SELECT - '收入' as trade_direction, - '其他零星收款' as fud_project_item, - '汇兑损益' as plan_item_name, - 99 as srt, - SUM(CASE WHEN last_day(date(concat_ws(',',account_year,account_month,'1'))) = '${sStart_date}' -- 当前统计时间 - THEN losses_amt ELSE 0 END) / 10000 AS today_amt -- 本日 - ,SUM(CASE WHEN to_char(date(concat_ws(',',account_year,account_month,'1')),'yyyy-MM') = '${sStart_mon}' -- 当前统计时间 - THEN losses_amt ELSE 0 END) / 10000 AS month_amt -- 本月累计 - ,SUM(CASE WHEN to_char(date(concat_ws(',',account_year,account_month,'1')),'yyyy') = '${sStart_year}' -- 当前统计时间 - THEN losses_amt ELSE 0 END) / 10000 AS year_amt -- 本年累计 - - ,SUM(CASE WHEN last_day(date(concat_ws(',',account_year,account_month,'1'))) = '${YEARDELTA(sStart_date,-1)}' - THEN losses_amt ELSE 0 END) / 10000 AS last_year_day_amt -- 去年同期本日累计 - ,SUM(CASE WHEN to_char(date(concat_ws(',',account_year,account_month,'1')),'yyyy-MM') = '${LEFT(YEARDELTA(CONCATENATE(sStart_mon,"-01"),-1),7)}' - THEN losses_amt ELSE 0 END) / 10000 AS last_year_mon_amt -- 去年同期本月累计 - ,SUM(CASE WHEN to_char(date(concat_ws(',',account_year,account_month,'1')),'yyyy') = '${YEAR(YEARDELTA(CONCATENATE(sStart_year,"-01-01"),-1))}' - -- and date(concat_ws(',',account_year,account_month,'1'))<=date'${YEARDELTA(sStart_date,-1)}' - THEN losses_amt ELSE 0 END) / 10000 AS last_year_amt -- 去年同期累计 - FROM sdi_hzg.exchange_gains_losses fp - where - EXISTS ( - SELECT - 1 - FROM + ${IF(len(sCorp)=0," ","AND a.corp_code in ('"+sCorp+"')")} + AND EXISTS ( + SELECT + 1 + FROM dm.dm_bi_user_permisson - WHERE - bi_user = '${fine_username}' + WHERE + bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','fim') AND ( is_all = 1 - OR per_code = fp.corp_code + OR per_code = a.corp_code ) - ) - ${IF(LEN(sCorp)!=0," AND fp.corp_code IN ('"+ sCorp +"')", "")} + ) + union all + select + concat_ws('-',egl.account_year,egl.account_month,'01')::date as stat_date, + cp.corp_short_name, + '收入' as trade_direction, + '执行' as indi_type, + '汇兑损益' as plan_item_class, + '汇兑损益' as plan_item_name, + '' as trade_item, + egl.losses_amt as amt + from sdi_hzg.exchange_gains_losses egl + inner join dwr.dim_corp cp on egl.corp_code=cp.corp_code and cp.corp_group='股份' + where 1=1 + AND EXISTS ( + SELECT + 1 + FROM + dm.dm_bi_user_permisson + WHERE + bi_user = '${fine_username}' -- 替换为fine_username + AND per_model IN ('all','fim') + AND ( + is_all = 1 + OR per_code = egl.corp_code + ) + ) + ${IF(len(sCorp)=0," ","AND egl.corp_code in ('"+sCorp+"')")} + +) + ,tmp as (select + trade_direction, + indi_type, + stat_date, + YEAR(stat_date) AS year, + MONTH(stat_date) AS month, + corp_short_name, + case when plan_item_name in ('取得贷款','内部调拨收入','票据变现收入','出售房屋及构筑物','吸收投资','投资收益','收回投资') and trade_direction='收入' then '非经营活动' + when plan_item_name in ('偿还贷款','土地支出','土建支出','设备支出','维修支出','分配股利','利息支出','购买房屋及构筑物','投资支出','票据变现支出','内部调拨支出','筹资费用') and trade_direction='支出' then '非经营活动' + else '经营活动' + end as item_type, + case when plan_item_name in ('偿还贷款','土地支出','土建支出','设备支出','维修支出','分配股利','利息支出','购买房屋及建筑物','投资支出','票据变现支出','筹资费用') then '投资筹资类' + when plan_item_name in ('取得贷款','票据变现收入','出售房屋及建筑物','吸收投资','投资收益','收回投资') then '投资筹资类' + else '非投资筹资类' + end as item_type1, + if(plan_item_name='其他收入(含未确认收入)' ,if(trade_item in ('窜货款', '红包充值费用', '转货款'),trade_item,'其他'),plan_item_name) as plan_item_name, + sum(amt) * (1 / 10000) AS amt + from tb + where 1=1 + and stat_date >= date'${switch(sData_type,'0',DATEINYEAR(YEARDELTA(sStart_date,-1),1),'1',DATEINYEAR(YEARDELTA(CONCATENATE(sStart_mon,"-01"),-1),1),'2',DATEINYEAR(YEARDELTA(CONCATENATE(sStart_year,"-01-01"),-1),1))}' + + -- and stat_date <= date '${sStart_date}' + -- ${if(sData_type='2',"AND stat_date<=date('"+CONCATENATE(ENDOFMONTH(sStart_date)," 23:59:59")+"')","AND MONTH(stat_date)="+MONTH(sStart_date)+"")} + group by + trade_direction, + indi_type, + stat_date, + YEAR(stat_date), + MONTH(stat_date), + corp_short_name, + case when plan_item_name in ('取得贷款','内部调拨收入','票据变现收入','出售房屋及构筑物','吸收投资','投资收益','收回投资') and trade_direction='收入' then '非经营活动' + when plan_item_name in ('偿还贷款','土地支出','土建支出','设备支出','维修支出','分配股利','利息支出','购买房屋及构筑物','投资支出','票据变现支出','内部调拨支出','筹资费用') and trade_direction='支出' then '非经营活动' + else '经营活动' + end, + case when plan_item_name in ('偿还贷款','土地支出','土建支出','设备支出','维修支出','分配股利','利息支出','购买房屋及建筑物','投资支出','票据变现支出','筹资费用') then '投资筹资类' + when plan_item_name in ('取得贷款','票据变现收入','出售房屋及建筑物','吸收投资','投资收益','收回投资') then '投资筹资类' + else '非投资筹资类' + end, + if(plan_item_name='其他收入(含未确认收入)' ,if(trade_item in ('窜货款', '红包充值费用', '转货款'),trade_item,'其他'),plan_item_name) +),tmp2 AS +( + SELECT + A.plan_item_class AS plan_item_class -- 费用大类 + ,A.plan_item_name AS plan_item_name -- 费用小类 + ,SUM(B.收入执行) AS 收入执行 + ,SUM(B.收入执行同期) AS 收入执行同期 + FROM + ( + + + select + fp.plan_item_class, + if(plan_item_name='其他收入(含未确认收入)' ,if(trade_item in ('窜货款', '红包充值费用', '转货款'),trade_item,'其他'),plan_item_name) as plan_item_name, + if(plan_item_name='其他收入(含未确认收入)' ,decode(trade_item,'转货款',12.1,'红包充值费用',12.2,'窜货款',12.3,st.sorted_no),nvl(st.sorted_no,99)) as 排序 + from dm.dm_fim_fud_indicator fp + left join sdi_xdata.mdm_dim_sorted st on st.sorted_value = fp.plan_item_name and st.sorted_type='资金项目' + where fp.trade_direction='收入' + and year(stat_date)=${year(sStart_date)} + and EXISTS ( + SELECT + 1 + FROM + dm.dm_bi_user_permisson + WHERE + bi_user = '${fine_username}' -- 替换为${fine_username} + AND per_model IN ('all','fim') + AND ( + is_all = 1 + OR per_code = fp.corp_code + ) + ) + ${IF(len(sCorp)=0," ","AND fp.corp_code in ('"+sCorp+"')")} + group by fp.plan_item_class, + if(plan_item_name='其他收入(含未确认收入)' ,if(trade_item in ('窜货款', '红包充值费用', '转货款'),trade_item,'其他'),plan_item_name), + if(plan_item_name='其他收入(含未确认收入)' ,decode(trade_item,'转货款',12.1,'红包充值费用',12.2,'窜货款',12.3,st.sorted_no),nvl(st.sorted_no,99)) + + union all + select + '其他收入' as plan_item_class, + '汇兑损益' as plan_item_name, + 98 as 排序 + + + + + )A + JOIN + ( + select + trade_direction, + corp_short_name, + plan_item_name, + SUM(CASE WHEN ${switch(sData_type,'0',"stat_date >= date '" + sStart_date + "' AND stat_date <= date '" + sStart_date + "'",'1',"to_char(stat_date,'yyyy-MM') = '" + sStart_mon + "'",'2',"to_char(stat_date,'yyyy') = '" + sStart_year + "' AND to_char(stat_date,'yyyy-MM') <= '" + sStart_mon + "'")} then amt else 0 end) as "收入执行", + SUM(CASE WHEN ${switch(sData_type,'0',"stat_date >= date '" + YEARDELTA(sStart_date,-1) + "' AND stat_date <= date '" + YEARDELTA(sStart_date,-1) + "'",'1',"to_char(stat_date,'yyyy-MM') = '" + LEFT(YEARDELTA(CONCATENATE(sStart_mon,"-01"),-1),7) + "'",'2',"to_char(stat_date,'yyyy') = '" + YEAR(YEARDELTA(CONCATENATE(sStart_year,"-01-01"),-1)) + "' AND to_char(stat_date,'yyyy-MM') <= '" + LEFT(YEARDELTA(CONCATENATE(sStart_mon,"-01"),-1),7) + "'")} then amt else 0 end) as "收入执行同期" + FROM tmp + WHERE trade_direction = '收入' + AND indi_type = '执行' + -- AND plan_item_name <> '内部调拨支出' + GROUP BY + trade_direction, + indi_type, + year, + month, + corp_short_name, + plan_item_name + )B + ON A.plan_item_name = B.plan_item_name + GROUP BY A.plan_item_class,A.plan_item_name + -- ORDER BY SUM(B.收入执行) - AND date(concat_ws(',',account_year,account_month,'1')) >= date '${DATEINYEAR(YEARDELTA(sStart_date,-1),1)}' -- 上年年初 - -- and date(concat_ws(',',account_year,account_month,'1'))<= date '${sStart_date}' -- 当前统计时间 ) SELECT - fud_project_item - ,SUM(${switch(sData_type,'0',"today_amt",'1',"month_amt",'2',"year_amt")}) AS in_amt -- 酒类回款本期收入 - ,SUM(${switch(sData_type,'0',"last_year_day_amt",'1',"last_year_mon_amt",'2',"last_year_amt")}) AS in_amt_yy -- 酒类回款同期收入 -FROM rlt -WHERE trade_direction = '收入' -GROUP BY fud_project_item -ORDER BY SUM(${switch(sData_type,'0',"today_amt",'1',"month_amt",'2',"year_amt")}) +${if(isnull(sIncome_detail),"A.plan_item_class","A.plan_item_name")} AS kpi_type +,A.stat_type AS stat_type +,A.收入执行 AS 收入执行 +FROM +( +SELECT +T.plan_item_class -- 费用大类 +,T.plan_item_name -- 费用小类 +,'收入' AS stat_type -- 统计类型 +,T.收入执行 AS 收入执行 -- 收入执行当期值 +FROM tmp2 T +UNION ALL +SELECT +T.plan_item_class -- 费用大类 + ,T.plan_item_name -- 费用小类 +,'同期' AS stat_type -- 统计类型 +,T.收入执行同期 AS 收入执行 -- 收入执行当期值 +FROM tmp2 T +)A +WHERE 1=1 +${if(sIncome_ly=0,"","and A.stat_type = '收入'")} +${if(isnull(sIncome_detail),"","and A.plan_item_class = '"+sIncome_detail+"'")} + ; + -- 收入趋势 @@ -2454,22 +2454,22 @@ with tb as (select a.stat_date, end, if(plan_item_name='其他收入(含未确认收入)' ,if(trade_item in ('窜货款', '红包充值费用', '转货款'),trade_item,'其他'),plan_item_name) ) +,tmp2 AS ( - - -SELECT -A.plan_item_class AS plan_item_class -,SUM(B.支出执行) AS 支出执行 -,SUM(B.支出执行同期) AS 支出执行同期 -FROM -( - SELECT fp.plan_item_class, - plan_item_name - FROM dm.dm_fim_fud_indicator fp - LEFT JOIN sdi_xdata.mdm_dim_sorted st ON st.sorted_value = fp.plan_item_name AND st.sorted_type = '资金项目' - WHERE fp.trade_direction = '支出' - -- AND stat_date >= date'${CONCATENATE(YEAR(sStart_date),"-01-01")}' - AND EXISTS(SELECT 1 + SELECT + A.plan_item_class AS plan_item_class -- 费用大类 + ,A.plan_item_name AS plan_item_name -- 费用小类 + ,SUM(B.支出执行) AS 支出执行 + ,SUM(B.支出执行同期) AS 支出执行同期 + FROM + ( + SELECT fp.plan_item_class, + plan_item_name + FROM dm.dm_fim_fud_indicator fp + LEFT JOIN sdi_xdata.mdm_dim_sorted st ON st.sorted_value = fp.plan_item_name AND st.sorted_type = '资金项目' + WHERE fp.trade_direction = '支出' + -- AND stat_date >= date'${CONCATENATE(YEAR(sStart_date),"-01-01")}' + AND EXISTS(SELECT 1 FROM dm.dm_bi_user_permisson WHERE @@ -2480,35 +2480,62 @@ FROM OR per_code = fp.corp_code ) ) - ${IF(len(sCorp)=0," ","AND fp.corp_code in ('"+sCorp+"')")} - GROUP BY fp.plan_item_class, - plan_item_name, - st.sorted_no + ${IF(len(sCorp)=0," ","AND fp.corp_code in ('"+sCorp+"')")} + GROUP BY fp.plan_item_class, + plan_item_name, + st.sorted_no -- order by nvl(st.sorted_no,99) -)A - JOIN -( - select - trade_direction, - corp_short_name, - plan_item_name, - SUM(CASE WHEN ${switch(sData_type,'0',"stat_date >= date '" + sStart_date + "' AND stat_date <= date '" + sStart_date + "'",'1',"to_char(stat_date,'yyyy-MM') = '" + sStart_mon + "'",'2',"to_char(stat_date,'yyyy') = '" + sStart_year + "' AND to_char(stat_date,'yyyy-MM') <= '" + sStart_mon + "'")} then amt else 0 end) as "支出执行", - SUM(CASE WHEN ${switch(sData_type,'0',"stat_date >= date '" + YEARDELTA(sStart_date,-1) + "' AND stat_date <= date '" + YEARDELTA(sStart_date,-1) + "'",'1',"to_char(stat_date,'yyyy-MM') = '" + LEFT(YEARDELTA(CONCATENATE(sStart_mon,"-01"),-1),7) + "'",'2',"to_char(stat_date,'yyyy') = '" + YEAR(YEARDELTA(CONCATENATE(sStart_year,"-01-01"),-1)) + "' AND to_char(stat_date,'yyyy-MM') <= '" + LEFT(YEARDELTA(CONCATENATE(sStart_mon,"-01"),-1),7) + "'")} then amt else 0 end) as "支出执行同期" - FROM tmp - WHERE trade_direction = '支出' - AND indi_type = '执行' - AND plan_item_name <> '内部调拨支出' - GROUP BY - trade_direction, - indi_type, - year, - month, - corp_short_name, - plan_item_name -)B -ON A.plan_item_name = B.plan_item_name -GROUP BY A.plan_item_class -ORDER BY SUM(B.支出执行) + )A + JOIN + ( + select + trade_direction, + corp_short_name, + plan_item_name, + SUM(CASE WHEN ${switch(sData_type,'0',"stat_date >= date '" + sStart_date + "' AND stat_date <= date '" + sStart_date + "'",'1',"to_char(stat_date,'yyyy-MM') = '" + sStart_mon + "'",'2',"to_char(stat_date,'yyyy') = '" + sStart_year + "' AND to_char(stat_date,'yyyy-MM') <= '" + sStart_mon + "'")} then amt else 0 end) as "支出执行", + SUM(CASE WHEN ${switch(sData_type,'0',"stat_date >= date '" + YEARDELTA(sStart_date,-1) + "' AND stat_date <= date '" + YEARDELTA(sStart_date,-1) + "'",'1',"to_char(stat_date,'yyyy-MM') = '" + LEFT(YEARDELTA(CONCATENATE(sStart_mon,"-01"),-1),7) + "'",'2',"to_char(stat_date,'yyyy') = '" + YEAR(YEARDELTA(CONCATENATE(sStart_year,"-01-01"),-1)) + "' AND to_char(stat_date,'yyyy-MM') <= '" + LEFT(YEARDELTA(CONCATENATE(sStart_mon,"-01"),-1),7) + "'")} then amt else 0 end) as "支出执行同期" + FROM tmp + WHERE trade_direction = '支出' + AND indi_type = '执行' + AND plan_item_name <> '内部调拨支出' + GROUP BY + trade_direction, + indi_type, + year, + month, + corp_short_name, + plan_item_name + )B + ON A.plan_item_name = B.plan_item_name + GROUP BY A.plan_item_class,A.plan_item_name + -- ORDER BY SUM(B.支出执行) +) +SELECT + ${if(isnull(sIncome_detail1),"A.plan_item_class","A.plan_item_name")} AS kpi_type + ,A.stat_type AS stat_type + ,A.支出执行 AS 支出执行 +FROM + ( + SELECT + T.plan_item_class -- 费用大类 + ,T.plan_item_name -- 费用小类 + ,'支出' AS stat_type -- 统计类型 + ,T.支出执行 AS 支出执行 -- 支出执行当期值 + FROM tmp2 T + UNION ALL + SELECT + T.plan_item_class -- 费用大类 + ,T.plan_item_name -- 费用小类 + ,'同期' AS stat_type -- 统计类型 + ,T.支出执行同期 AS 支出执行 -- 收入执行同期值 + FROM tmp2 T + )A +WHERE 1=1 +${if(sIncome_ly1=0,"","and A.stat_type = '支出'")} +${if(isnull(sIncome_detail1),"","and A.plan_item_class = '"+sIncome_detail1+"'")} + + + ; -- 支出趋势 @@ -2668,8 +2695,7 @@ with dba as ( '现金' as amt_type, 0 as is_usable FROM sdi_hzg.exchange_gains_losses - -- where date(concat_ws(',',account_year,account_month,'1'))=date'${DATEINMONTH(sStart_date,1)}' - -- ${switch(sData_type,'0',"date(concat_ws(',',account_year,account_month,'1')) = '" + DATEINMONTH(sStart_date,1) + "'",'1',"to_char(date(concat_ws(',',account_year,account_month,'1')),'yyyy-MM') = '" + sStart_mon + "'",'2',"to_char(stat_date,'yyyy') = '" + sStart_year + "' AND to_char(stat_date,'yyyy-MM') <= '" + sStart_mon + "'")} + where date(concat_ws(',',account_year,account_month,'1'))=date'${DATEINMONTH(sStart_date,1)}' union all select @@ -2680,8 +2706,8 @@ with dba as ( 0 as is_usable from dm.dm_fim_fud_indicator where indi_type='执行' - and stat_date>=date'${switch(sData_type,"0",DATEINMONTH(sStart_date,1),"1",CONCATENATE(sStart_mon,"-01"),"2",CONCATENATE(sStart_year,"-01-01"))}' - and stat_date<=date'${switch(sData_type,"0",sStart_date,"1",ENDOFMONTH(CONCATENATE(sStart_mon,"-01")),"2",CONCATENATE(sStart_year,"12-31"))}' + and stat_date>=date'${DATEINMONTH(sStart_date,1)}' + and stat_date<=date'${sStart_date}' --and plan_item_name not in ('内部调拨收入', '内部调拨支出') group by corp_code, owner_bank_account, @@ -2695,8 +2721,8 @@ with dba as ( 1 as is_usable from lmt where limit_amt_pre!=0 - and report_date>=date'${switch(sData_type,"0",DATEINMONTH(sStart_date,1),"1",CONCATENATE(sStart_mon,"-01"),"2",CONCATENATE(sStart_year,"-01-01"))}' - and report_date<=date'${switch(sData_type,"0",sStart_date,"1",ENDOFMONTH(CONCATENATE(sStart_mon,"-01")),"2",CONCATENATE(sStart_year,"12-31"))}' + and report_date>=date '${DATEINMONTH(sStart_date,1)}' + and report_date<=date'${sStart_date}' group by corp_code,bank_account union all /*受限资金*/ @@ -2707,8 +2733,8 @@ with dba as ( 0 as is_usable from lmt where limit_amt_pre!=0 - and report_date>=date'${switch(sData_type,"0",DATEINMONTH(sStart_date,1),"1",CONCATENATE(sStart_mon,"-01"),"2",CONCATENATE(sStart_year,"-01-01"))}' - and report_date<=date'${switch(sData_type,"0",sStart_date,"1",ENDOFMONTH(CONCATENATE(sStart_mon,"-01")),"2",CONCATENATE(sStart_year,"12-31"))}' + and report_date>= date'${DATEINMONTH(sStart_date,1)}' + and report_date<=date'${sStart_date}' group by corp_code,bank_account ), base_calc AS (SELECT CASE @@ -2748,11 +2774,263 @@ base_calc AS (SELECT CASE THEN '受限资金' END ) SELECT - SUM(CASE WHEN A.subject_type in('其中:可用存款','香港公司账户资金') THEN A.yb_balance ELSE 0 END) AS bank_amt -- 银行存款 - ,SUM(CASE WHEN A.subject_type in('银行承兑汇票') THEN A.yb_balance ELSE 0 END) AS bill_amt -- 票据 - ,SUM(CASE WHEN A.subject_type in('受限资金') THEN A.yb_balance ELSE 0 END) AS limt_amt -- 受限资金 + SUM(CASE WHEN A.subject_type in('其中:可用存款','香港公司账户资金') THEN A.yb_balance ELSE 0 END) AS bank_amt -- 银行存款 +,SUM(CASE WHEN A.subject_type in('银行承兑汇票') THEN A.yb_balance ELSE 0 END) AS bill_amt -- 票据 +,SUM(CASE WHEN A.subject_type in('受限资金') THEN A.yb_balance ELSE 0 END) AS limt_amt -- 受限资金 FROM base_calc A +-- 同比 +with dba as ( + select decode(length(accountnumber), '17', + substring(accountnumber, 3), + accountnumber) as accountnumber, + max(category_name) as category_name + + from dwr.dim_bank_account + where account_owner_class='langjiu' + group by decode(length(accountnumber), '17', + substring(accountnumber, 3), + accountnumber) +), + lmt as (/*用于计算受限资金*/ + select + report_date, + corp_code, + bank_account, + currency, + /*20351059900100000512291 为受限资金账户*/ + current_balance-decode(bank_account,'20351059900100000512291',0,usable_balance)-nvl(lag(current_balance-decode(bank_account,'20351059900100000512291',0,usable_balance),1) over (partition by bank_account,currency order by report_date),0) as limit_amt_pre + from dwi.dwi_fim_bank_account_balance + ), ye as ( + + select corp_code, + owner_bank_account, + amt, + amt_type, + decode(is_usable,1,0,1) as is_usable + from dm.dm_fim_fud_balance + where stat_date=date'${DATEINMONTH(MONTHDELTA(YEARDELTA(sStart_date,-1),-1),1)}' + union all + /*汇兑损益*/ + SELECT + corp_code, + null as owner_bank_account, + losses_amt as amt, + '现金' as amt_type, + 0 as is_usable + FROM sdi_hzg.exchange_gains_losses + where date(concat_ws(',',account_year,account_month,'1'))=date'${DATEINMONTH(YEARDELTA(sStart_date,-1),1)}' + + union all + select + corp_code, + owner_bank_account, + sum(decode(trade_direction,'支出',-1*amt,amt)) as amt, + amt_type, + 0 as is_usable + from dm.dm_fim_fud_indicator + where indi_type='执行' + and stat_date>=date'${DATEINMONTH(YEARDELTA(sStart_date,-1),1)}' + and stat_date<=date'${YEARDELTA(sStart_date,-1)}' + --and plan_item_name not in ('内部调拨收入', '内部调拨支出') + group by corp_code, + owner_bank_account, + amt_type + union all +/*受限资金*/ + select corp_code, + bank_account as owner_bank_account, + sum(limit_amt_pre) as amt, + '现金' as amt_type, + 1 as is_usable + from lmt + where limit_amt_pre!=0 + and report_date>=date '${DATEINMONTH(YEARDELTA(sStart_date,-1),1)}' + and report_date<=date'${YEARDELTA(sStart_date,-1)}' + group by corp_code,bank_account + union all +/*受限资金*/ + select corp_code, + bank_account as owner_bank_account, + -1*sum(limit_amt_pre) as amt, + '现金' as amt_type, + 0 as is_usable + from lmt + where limit_amt_pre!=0 + and report_date>= date'${DATEINMONTH(YEARDELTA(sStart_date,-1),1)}' + and report_date<=date'${YEARDELTA(sStart_date,-1)}' + group by corp_code,bank_account +), + base_calc AS (SELECT CASE + WHEN a.is_usable = 0 AND a.amt_type = '现金' AND a.corp_code <> '0223' + THEN '其中:可用存款' + WHEN a.amt_type = '票据' + THEN '银行承兑汇票' + WHEN a.amt_type = '现金' AND a.corp_code = '0223' + THEN '香港公司账户资金' + WHEN a.is_usable = 1 AND a.amt_type = '现金' AND a.corp_code <> '0223' + THEN '受限资金' + END AS subject_type + , SUM(a.amt) * (1 / 10000) AS yb_balance + +-- is_usable as is_limit--受限资金金额 + FROM ye a + INNER JOIN dwr.dim_corp c ON a.corp_code = c.corp_code AND c.corp_group = '股份' +/*left join dba on decode(length(a.owner_bank_account), 17, + substring(a.owner_bank_account, 3), + a.owner_bank_account)=dba.accountnumber*/ + WHERE EXISTS (SELECT 1 + FROM dm.dm_bi_user_permisson + WHERE bi_user = '${fine_username}' + AND per_model IN ('all', 'fim') + AND ( + is_all = 1 + )) + AND a.amt != 0 + ${IF(LEN(sCorp)!=0," AND a.corp_code IN ('"+ sCorp +"')", "")} + GROUP BY CASE WHEN a.is_usable = 0 AND a.amt_type = '现金' AND a.corp_code <> '0223' + THEN '其中:可用存款' + WHEN a.amt_type = '票据' + THEN '银行承兑汇票' + WHEN a.amt_type = '现金' AND a.corp_code = '0223' + THEN '香港公司账户资金' + WHEN a.is_usable = 1 AND a.amt_type = '现金' AND a.corp_code <> '0223' + THEN '受限资金' END + ) +SELECT + SUM(CASE WHEN A.subject_type in('其中:可用存款','香港公司账户资金') THEN A.yb_balance ELSE 0 END) AS bank_amt -- 银行存款 + ,SUM(CASE WHEN A.subject_type in('银行承兑汇票') THEN A.yb_balance ELSE 0 END) AS bill_amt -- 票据 + ,SUM(CASE WHEN A.subject_type in('受限资金') THEN A.yb_balance ELSE 0 END) AS limt_amt -- 受限资金 +FROM base_calc A + + + + +-- 本日期初余额 +with dba as ( + select decode(length(accountnumber), '17', + substring(accountnumber, 3), + accountnumber) as accountnumber, + max(category_name) as category_name + + from dwr.dim_bank_account + where account_owner_class='langjiu' + group by decode(length(accountnumber), '17', + substring(accountnumber, 3), + accountnumber) +), + lmt as (/*用于计算受限资金*/ + select + report_date, + corp_code, + bank_account, + currency, + current_balance-decode(bank_account,'20351059900100000512291',0,usable_balance)-nvl(lag(current_balance-decode(bank_account,'20351059900100000512291',0,usable_balance),1) over (partition by bank_account,currency order by report_date),0) as limit_amt_pre + from dwi.dwi_fim_bank_account_balance + ), + ye as ( + + select corp_code, + owner_bank_account, + amt, + amt_type, + decode(is_usable,1,0,1) as is_usable + from dm.dm_fim_fud_balance + where stat_date=date'${DATEINMONTH(MONTHDELTA(sStart_date,-1),1)}' + union all + /*汇兑损益*/ + SELECT + corp_code, + null as owner_bank_account, + losses_amt as amt, + '现金' as amt_type, + 0 as is_usable + FROM sdi_hzg.exchange_gains_losses + where date(concat_ws(',',account_year,account_month,'1'))=date'${DATEINMONTH(sStart_date,1)}' + union all + select + corp_code, + owner_bank_account, + sum(decode(trade_direction,'支出',-1*amt,amt)) as amt, + amt_type, + 0 as is_usable + from dm.dm_fim_fud_indicator + where indi_type='执行' + and stat_date>=date'${DATEINMONTH(sStart_date,1)}' + and stat_date=date'${DATEINMONTH(sStart_date,1)}' + and report_date=date'${DATEINMONTH(sStart_date,1)}' + and report_date '0223' + THEN '其中:可用存款' + WHEN a.amt_type = '票据' + THEN '银行承兑汇票' + WHEN a.amt_type = '现金' AND a.corp_code = '0223' + THEN '香港公司账户资金' + WHEN a.is_usable = 1 AND a.amt_type = '现金' AND a.corp_code <> '0223' + THEN '受限资金' + END AS subject_type + ,sum(a.amt)/10000 as yb_balance + -- a.amt_type, + -- is_usable as is_limit--受限资金金额 + from ye a + inner join dwr.dim_corp c on a.corp_code=c.corp_code and c.corp_group='股份' + where exists ( + select + 1 + from + dm.dm_bi_user_permisson + where + bi_user = '${fine_username}' + and per_model IN ('all','fim') + and ( + is_all = 1 + ) + ) + and a.amt!=0 + ${IF(LEN(sCorp)!=0," AND a.corp_code IN ('"+ sCorp +"')", "")} + group by CASE WHEN a.is_usable = 0 AND a.amt_type = '现金' AND a.corp_code <> '0223' + THEN '其中:可用存款' + WHEN a.amt_type = '票据' + THEN '银行承兑汇票' + WHEN a.amt_type = '现金' AND a.corp_code = '0223' + THEN '香港公司账户资金' + WHEN a.is_usable = 1 AND a.amt_type = '现金' AND a.corp_code <> '0223' + THEN '受限资金' END + ) +SELECT + SUM(CASE WHEN A.subject_type in('其中:可用存款','香港公司账户资金') THEN A.yb_balance ELSE 0 END) AS bank_amt -- 银行存款 + ,SUM(CASE WHEN A.subject_type in('银行承兑汇票') THEN A.yb_balance ELSE 0 END) AS bill_amt -- 票据 + ,SUM(CASE WHEN A.subject_type in('受限资金') THEN A.yb_balance ELSE 0 END) AS limt_amt -- 受限资金 +FROM base_calc A ; @@ -2807,133 +3085,71 @@ ORDER BY sum(case when amt_type = '现金' and is_usable = '1' then amt end) DES -- 资金分析-资金余额趋势 --- 资金余额类型 - -with dba as ( - select decode(length(accountnumber), '17', - substring(accountnumber, 3), - accountnumber) as accountnumber, - max(category_name) as category_name - - from dwr.dim_bank_account +with dba as (/*存在一个账户多行数据,币种不同*/ + select accountnumber,bank_name from dwr.dim_bank_account where account_owner_class='langjiu' - group by decode(length(accountnumber), '17', - substring(accountnumber, 3), - accountnumber) + group by accountnumber,bank_name ), -lmt as (/*用于计算受限资金*/ - select - report_date, - corp_code, - bank_account, - currency, - /*20351059900100000512291 为受限资金账户*/ - current_balance-decode(bank_account,'20351059900100000512291',0,usable_balance)-nvl(lag(current_balance-decode(bank_account,'20351059900100000512291',0,usable_balance),1) over (partition by bank_account,currency order by report_date),0) as limit_amt_pre - from dwi.dwi_fim_bank_account_balance - ), ye as ( - - select corp_code, - owner_bank_account, - amt, - amt_type, - decode(is_usable,1,0,1) as is_usable - from dm.dm_fim_fud_balance - where stat_date=date'${DATEINMONTH(MONTHDELTA(sStart_date,-1),1)}' - union all - /*汇兑损益*/ - SELECT - corp_code, - null as owner_bank_account, - losses_amt as amt, - '现金' as amt_type, - 0 as is_usable - FROM sdi_hzg.exchange_gains_losses - -- where date(concat_ws(',',account_year,account_month,'1'))=date'${DATEINMONTH(sStart_date,1)}' - -- ${switch(sData_type,'0',"date(concat_ws(',',account_year,account_month,'1')) = '" + DATEINMONTH(sStart_date,1) + "'",'1',"to_char(date(concat_ws(',',account_year,account_month,'1')),'yyyy-MM') = '" + sStart_mon + "'",'2',"to_char(stat_date,'yyyy') = '" + sStart_year + "' AND to_char(stat_date,'yyyy-MM') <= '" + sStart_mon + "'")} - - union all - select - corp_code, - owner_bank_account, - sum(decode(trade_direction,'支出',-1*amt,amt)) as amt, - amt_type, - 0 as is_usable - from dm.dm_fim_fud_indicator - where indi_type='执行' - and stat_date>=date'${switch(sData_type,"0",DATEINMONTH(sStart_date,1),"1",CONCATENATE(sStart_mon,"-01"),"2",CONCATENATE(sStart_year,"-01-01"))}' - and stat_date<=date'${switch(sData_type,"0",sStart_date,"1",ENDOFMONTH(CONCATENATE(sStart_mon,"-01")),"2",CONCATENATE(sStart_year,"12-31"))}' - --and plan_item_name not in ('内部调拨收入', '内部调拨支出') - group by corp_code, - owner_bank_account, - amt_type - union all -/*受限资金*/ - select corp_code, - bank_account as owner_bank_account, - sum(limit_amt_pre) as amt, - '现金' as amt_type, - 1 as is_usable - from lmt - where limit_amt_pre!=0 - and report_date>=date'${switch(sData_type,"0",DATEINMONTH(sStart_date,1),"1",CONCATENATE(sStart_mon,"-01"),"2",CONCATENATE(sStart_year,"-01-01"))}' - and report_date<=date'${switch(sData_type,"0",sStart_date,"1",ENDOFMONTH(CONCATENATE(sStart_mon,"-01")),"2",CONCATENATE(sStart_year,"12-31"))}' - group by corp_code,bank_account - union all -/*受限资金*/ - select corp_code, - bank_account as owner_bank_account, - -1*sum(limit_amt_pre) as amt, - '现金' as amt_type, - 0 as is_usable - from lmt - where limit_amt_pre!=0 - and report_date>=date'${switch(sData_type,"0",DATEINMONTH(sStart_date,1),"1",CONCATENATE(sStart_mon,"-01"),"2",CONCATENATE(sStart_year,"-01-01"))}' - and report_date<=date'${switch(sData_type,"0",sStart_date,"1",ENDOFMONTH(CONCATENATE(sStart_mon,"-01")),"2",CONCATENATE(sStart_year,"12-31"))}' - group by corp_code,bank_account -), - base_calc AS (SELECT CASE - WHEN a.is_usable = 0 AND a.amt_type = '现金' AND a.corp_code <> '0223' - THEN '其中:可用存款' - WHEN a.amt_type = '票据' - THEN '银行承兑汇票' - WHEN a.amt_type = '现金' AND a.corp_code = '0223' - THEN '香港公司账户资金' - WHEN a.is_usable = 1 AND a.amt_type = '现金' AND a.corp_code <> '0223' - THEN '受限资金' - END AS subject_type - , SUM(a.amt) * (1 / 10000) AS yb_balance - --- is_usable as is_limit--受限资金金额 - FROM ye a - INNER JOIN dwr.dim_corp c ON a.corp_code = c.corp_code AND c.corp_group = '股份' -/*left join dba on decode(length(a.owner_bank_account), 17, - substring(a.owner_bank_account, 3), - a.owner_bank_account)=dba.accountnumber*/ - WHERE EXISTS (SELECT 1 - FROM dm.dm_bi_user_permisson - WHERE bi_user = '${fine_username}' - AND per_model IN ('all', 'fim') - AND ( - is_all = 1 - )) - AND a.amt != 0 - ${IF(LEN(sCorp)!=0," AND a.corp_code IN ('"+ sCorp +"')", "")} - GROUP BY CASE WHEN a.is_usable = 0 AND a.amt_type = '现金' AND a.corp_code <> '0223' - THEN '其中:可用存款' - WHEN a.amt_type = '票据' - THEN '银行承兑汇票' - WHEN a.amt_type = '现金' AND a.corp_code = '0223' - THEN '香港公司账户资金' - WHEN a.is_usable = 1 AND a.amt_type = '现金' AND a.corp_code <> '0223' - THEN '受限资金' END - ) -SELECT - - SUM(CASE WHEN A.subject_type in('其中:可用存款','香港公司账户资金') THEN A.yb_balance ELSE 0 END) AS bank_amt -- 银行存款 - ,SUM(CASE WHEN A.subject_type in('银行承兑汇票') THEN A.yb_balance ELSE 0 END) AS bill_amt -- 票据 - ,SUM(CASE WHEN A.subject_type in('受限资金') THEN A.yb_balance ELSE 0 END) AS limt_amt -- 受限资金 -FROM base_calc A -; + base_date AS + ( + SELECT + a.stat_date, + b.bank_name, + SUM(CASE WHEN amt_type = '现金' AND is_usable = '1' THEN amt END) AS 现金可用余额, -- 银行存款 + SUM(CASE WHEN amt_type = '票据' THEN amt END) AS 票据余额, -- 票据 + SUM(CASE WHEN amt_type = '现金' THEN amt END) - + SUM(CASE WHEN amt_type = '现金' AND is_usable = '1' THEN amt END) AS 受限资金 + FROM dm.dm_fim_fud_balance a + LEFT JOIN dba b ON DECODE(LENGTH(a.owner_bank_account), 17, SUBSTRING(a.owner_bank_account, 3), + a.owner_bank_account) = + DECODE(LENGTH(b.accountnumber), '17', SUBSTRING(b.accountnumber, 3), + b.accountnumber) + LEFT JOIN dwi.dwi_mdm_corp c ON a.corp_code = c.corp_code + WHERE EXISTS (SELECT 1 + FROM dm.dm_bi_user_permisson + WHERE bi_user = '${fine_username}' + AND per_model IN ('all', 'fim') + AND ( + is_all = 1 + OR per_code = a.corp_code + )) + ${if(len(sCorp) == 0,"","and a.corp_code IN ('"+sCorp+"')")} + GROUP BY + -- c.corp_name, + b.bank_name, + a.stat_date + HAVING SUM(amt) != 0 + ) +-- -- 近15天 +-- ${if(sStat_type2=1,"","/*")} +-- select +-- to_char(stat_date,'MM-dd') AS stat_date +-- ,to_char(stat_date,'yyyy-MM-dd') AS stat_time +-- ,SUM(现金可用余额) * (1/10000) AS 现金可用余额 +-- , SUM(票据余额) * (1 / 10000) AS 票据余额 +-- ,SUM(受限资金) * (1 /10000) AS 受限资金 +-- +-- from base_date +-- WHERE to_char(stat_date,'yyyy-MM-dd') >= '${FORMAT(DATEDELTA(TODAY(),-15),"yyyy-MM-dd")}' +-- AND to_char(stat_date,'yyyy-MM-dd') <= '${FORMAT(TODAY(),"yyyy-MM-dd")}' +-- GROUP BY to_char(stat_date,'MM-dd'),to_char(stat_date,'yyyy-MM-dd') +-- ORDER BY to_char(stat_date,'yyyy-MM-dd') +-- ${if(sStat_type2=1,"","*/")} +-- +-- 近12个月 + -- ${if(sStat_type2=2,"","/*")} +select + to_char(stat_date,'yyyyMM') AS stat_date + ,to_char(stat_date,'yyyyMM') AS stat_time + ,SUM(现金可用余额) * (1/10000) AS 现金可用余额 + , SUM(票据余额) * (1 / 10000) AS 票据余额 + ,SUM(受限资金) * (1 /10000) AS 受限资金 +from base_date +WHERE to_char(stat_date,'yyyy-MM') >= '${FORMAT(MONTHDELTA(TODAY(),-12),"yyyy-MM")}' + AND to_char(stat_date,'yyyy-MM') <= '${FORMAT(TODAY(),"yyyy-MM")}' +GROUP BY to_char(stat_date,'yyyyMM') +ORDER BY to_char(stat_date,'yyyyMM') +-- ${if(sStat_type2=2,"","*/")} @@ -2947,14 +3163,75 @@ with data_dk as( bank_code ,corp_code as org_code ,occupy_credit_quota_type - ,sum(case when to_char(case when actual_amort_day is not null then actual_amort_day else term_day end::date,'yyyy-MM-dd') > sysdate and to_char(loan_day::date,'yyyy-MM-dd') <= sysdate then term_amt else 0 end) this_amt -- 贷款金额 - ,sum(case when to_char(case when actual_amort_day is not null then actual_amort_day else term_day end::date,'yyyy-MM-dd') > (DATE_TRUNC('year', sysdate) - INTERVAL '1 day')::DATE and to_char(loan_day::date,'yyyy-MM-dd') <= (DATE_TRUNC('year', sysdate) - INTERVAL '1 day')::DATE then term_amt else 0 end) year_amt -- 年初合计 - ,sum(case when to_char(loan_day::date,'yyyy-MM-dd') <= sysdate::date - interval '1 year' then term_amt else 0 end) last_amt -- 去年同期合计 + ,sum(case when + -- to_char(actual_term_day::date,'yyyy-MM-dd') > sysdate + -- and to_char(loan_day::date,'yyyy-MM-dd') <= sysdate + ${switch(sData_type, + '0',"to_char(actual_term_day::date,'yyyy-MM-dd') > '" + sStart_date + "'" + "and to_char(loan_day::date,'yyyy-MM-dd') <= '"+ sStart_date + "'", + '1',"to_char(actual_term_day::date,'yyyy-MM') > '" + sStart_mon + "'" + "and to_char(loan_day::date,'yyyy-MM') <= '"+ sStart_mon + "'", + '2',"to_char(actual_term_day::date,'yyyy') > '" + sStart_year + "'" + "and to_char(loan_day::date,'yyyy') <= '"+ sStart_year + "'" + )} + + + then term_amt else 0 end) this_amt -- 贷款金额 + ,sum(case when + -- to_char(actual_term_day::date,'yyyy-MM-dd') > (DATE_TRUNC('year', sysdate) - INTERVAL '1 day')::DATE + -- and to_char(loan_day::date,'yyyy-MM-dd') <= (DATE_TRUNC('year', sysdate) - INTERVAL '1 day')::DATE + ${switch(sData_type, + '0',"to_char(actual_term_day::date,'yyyy-MM-dd') > '" + CONCATENATE(LEFT(YEARDELTA(sStart_date,-1),4),"-12-31") + "'" + "and to_char(loan_day::date,'yyyy-MM-dd') <= '"+ CONCATENATE(LEFT(YEARDELTA(sStart_date,-1),4),"-12-31") + "'", + '1',"to_char(actual_term_day::date,'yyyy-MM') > '" + CONCATENATE(LEFT(YEARDELTA(CONCATENATE(sStart_mon,'-01'),-1),4),"-12-31") + "'" + "and to_char(loan_day::date,'yyyy-MM') <= '"+ CONCATENATE(LEFT(YEARDELTA(CONCATENATE(sStart_mon,'-01'),-1),4),"-12-31") + "'", + '2',"to_char(actual_term_day::date,'yyyy') > '" + CONCATENATE(LEFT(YEARDELTA(CONCATENATE(sStart_year,'-01-01'),-1),4),"-12-31") + "'" + "and to_char(loan_day::date,'yyyy') <= '"+ CONCATENATE(LEFT(YEARDELTA(CONCATENATE(sStart_year,'-01-01'),-1),4),"-12-31") + "'" + )} + + + then term_amt else 0 end) year_amt -- 年初合计 + ,sum(case when + -- to_char(loan_day::date,'yyyy-MM-dd') <= sysdate::date - interval '1 year' + ${switch(sData_type, + '0',"to_char(loan_day::date,'yyyy-MM-dd') <= '" + sStart_date + "'::date - interval '1 year'", + '1',"to_char(loan_day::date,'yyyy-MM') <= '" + YEARDELTA(CONCATENATE(sStart_mon,"-01"),-1) + "'", + '2',"to_char(loan_day::date,'yyyy') <= '" + YEARDELTA(CONCATENATE(sStart_year,"-01-01"),-1) + "'" + )} + then term_amt else 0 end) last_amt -- 去年同期合计 from - sdi_xdata.fim_liab_amort_plan A + ( + SELECT + bank_code + ,corp_code + ,occupy_credit_quota_type + ,case when actual_amort_day is not null then actual_amort_day else term_day end AS actual_term_day + ,term_amt + ,loan_day + FROM sdi_xdata.fim_liab_amort_plan + ) A where -- 优先获取实际还款日期,再取到期日期 - to_char(case when actual_amort_day is not null then actual_amort_day else term_day end::date,'yyyy-MM-dd') > sysdate::date - interval '1 year' -- 去年同期的日期 - and to_char(loan_day::date,'yyyy-MM-dd') <= sysdate::date -- 借款日期要在查询日期之前的 + -- to_char(case when actual_amort_day is not null then actual_amort_day else term_day end::date,'yyyy-MM-dd') > sysdate::date - interval '1 year' -- 去年同期的日期 + ${switch(sData_type, + '0',"to_char(actual_term_day::date,'yyyy-MM-dd') > '" + sStart_date + "'::date - interval '1 year'", + '1',"to_char(actual_term_day::date,'yyyy-MM-dd') > '" + CONCATENATE(sStart_mon,'-01') + "'::date - interval '1 year'", + '2',"to_char(actual_term_day::date,'yyyy-MM-dd') > '" + CONCATENATE(sStart_year,'-01-01') + "'::date - interval '1 year'" + )} + + -- and to_char(loan_day::date,'yyyy-MM-dd') <= sysdate::date -- 借款日期要在查询日期之前的 + + ${switch(sData_type, + '0',"and to_char(loan_day::date,'yyyy-MM-dd') <= '" + sStart_date + "'::date", + '1',"and to_char(loan_day::date,'yyyy-MM') <= '" + sStart_mon + "'", + '2',"and to_char(loan_day::date,'yyyy') <= '" + sStart_year + "'" + )} + and exists ( + select + 1 + from + dm.dm_bi_user_permisson + where + bi_user = '${fine_username}' + and per_model IN ('all','fim') + and ( + is_all = 1 + OR per_code = A.corp_code + ) + ) group by bank_code, corp_code , @@ -2965,19 +3242,73 @@ with data_dk as( a.draw_bank_code --出票人银行 ,a.corp_code ,'应付票据金额' as occupy_credit_quota_type - ,sum(case when to_char(end_date,'yyyy-MM-dd') > sysdate::date and to_char(issue_date,'yyyy-MM-dd') <= sysdate::date then a.amt else 0 end) this_amt -- 票面金额 - ,sum(case when to_char(end_date,'yyyy-MM-dd') > (DATE_TRUNC('year', sysdate) - INTERVAL '1 day')::DATE and to_char(issue_date,'yyyy-MM-dd') <= (DATE_TRUNC('year', sysdate) - INTERVAL '1 day')::DATE then a.amt else 0 end) year_amt -- 年初合计 - ,sum(case when to_char(issue_date,'yyyy-MM-dd') <= sysdate::date - interval '1 year' then a.amt else 0 end) last_amt -- 去年同期 + ,sum(case when + -- to_char(end_date,'yyyy-MM-dd') > sysdate::date + -- and to_char(issue_date,'yyyy-MM-dd') <= sysdate::date + + ${switch(sData_type, + '0',"to_char(end_date::date,'yyyy-MM-dd') > '" + sStart_date + "'" + "and to_char(issue_date::date,'yyyy-MM-dd') <= '"+ sStart_date + "'", + '1',"to_char(end_date::date,'yyyy-MM') > '" + sStart_mon + "'" + "and to_char(issue_date::date,'yyyy-MM') <= '"+ sStart_mon + "'", + '2',"to_char(end_date::date,'yyyy') > '" + sStart_year + "'" + "and to_char(issue_date::date,'yyyy') <= '"+ sStart_year + "'" + )} + then a.amt else 0 end) this_amt -- 票面金额 + ,sum(case when + -- to_char(end_date,'yyyy-MM-dd') > (DATE_TRUNC('year', sysdate) - INTERVAL '1 day')::DATE + -- and to_char(issue_date,'yyyy-MM-dd') <= (DATE_TRUNC('year', sysdate) - INTERVAL '1 day')::DATE + ${switch(sData_type, + '0',"to_char(end_date::date,'yyyy-MM-dd') > '" + CONCATENATE(LEFT(YEARDELTA(sStart_date,-1),4),"-12-31") + "'" + "and to_char(issue_date::date,'yyyy-MM-dd') <= '"+ CONCATENATE(LEFT(YEARDELTA(sStart_date,-1),4),"-12-31") + "'", + '1',"to_char(end_date::date,'yyyy-MM') > '" + CONCATENATE(LEFT(YEARDELTA(CONCATENATE(sStart_mon,'-01'),-1),4),"-12-31") + "'" + "and to_char(issue_date::date,'yyyy-MM') <= '"+ CONCATENATE(LEFT(YEARDELTA(CONCATENATE(sStart_mon,'-01'),-1),4),"-12-31") + "'", + '2',"to_char(end_date::date,'yyyy') > '" + CONCATENATE(LEFT(YEARDELTA(CONCATENATE(sStart_year,'-01-01'),-1),4),"-12-31") + "'" + "and to_char(issue_date::date,'yyyy') <= '"+ CONCATENATE(LEFT(YEARDELTA(CONCATENATE(sStart_year,'-01-01'),-1),4),"-12-31") + "'" + )} + + + + then a.amt else 0 end) year_amt -- 年初合计 + ,sum(case when + -- to_char(issue_date,'yyyy-MM-dd') <= sysdate::date - interval '1 year' + ${switch(sData_type, + '0',"to_char(issue_date,'yyyy-MM-dd') <= '" + sStart_date + "'::date - interval '1 year'", + '1',"to_char(issue_date::date,'yyyy-MM') <= '" + YEARDELTA(CONCATENATE(sStart_mon,"-01"),-1) + "'", + '2',"to_char(issue_date::date,'yyyy') <= '" + YEARDELTA(CONCATENATE(sStart_year,"-01-01"),-1) + "'" + )} + + then a.amt else 0 end) last_amt -- 去年同期 from dwr.fact_fim_draft_flow a where operate_flag='1003' -- 开票 - and to_char(end_date,'yyyy-MM-dd') > sysdate::date - interval '1 year' -- 到期日期 - and to_char(issue_date,'yyyy-MM-dd') <= sysdate::date -- 出票日期 + -- and to_char(end_date,'yyyy-MM-dd') > sysdate::date - interval '1 year' -- 到期日期 + + ${switch(sData_type, + '0',"and to_char(end_date,'yyyy-MM-dd') > '" + sStart_date + "'::date - interval '1 year'", + '1',"and to_char(end_date,'yyyy-MM-dd') > '" + CONCATENATE(sStart_mon,'-01') + "'::date - interval '1 year'", + '2',"and to_char(end_date,'yyyy-MM-dd') > '" + CONCATENATE(sStart_year,'-01-01') + "'::date - interval '1 year'" + )} + + -- and to_char(issue_date,'yyyy-MM-dd') <= sysdate::date -- 出票日期 + + ${switch(sData_type, + '0',"and to_char(issue_date,'yyyy-MM-dd') <= '" + sStart_date + "'::date", + '1',"and to_char(issue_date,'yyyy-MM') <= '" + sStart_mon + "'", + '2',"and to_char(issue_date,'yyyy') <= '" + sStart_year + "'" + )} + and exists ( + select + 1 + from + dm.dm_bi_user_permisson + where + bi_user = '${fine_username}' + and per_model IN ('all','fim') + and ( + is_all = 1 + OR per_code = A.corp_code + ) + ) group by a.corp_code,a.draw_bank_code - order by - a.corp_code,a.draw_bank_code + -- order by + -- a.corp_code,a.draw_bank_code ), dz as ( SELECT distinct @@ -2991,21 +3322,266 @@ with data_dk as( WHERE bank.LABEL = '银行' AND org.LABEL = '主体' + and ${if(len(sCorp)=0,"1=1","org.code in ('"+sCorp+"') ")} ) SELECT - dz.bank_code as bank_code - ,dz.bank_name as bank - -- ,dk.occupy_credit_quota_type - ,SUM(CASE WHEN dk.occupy_credit_quota_type <> '应付票据金额' THEN dk.this_amt ELSE 0 END) * (1/10000) AS loan_amt -- 贷款余额 + SUM(CASE WHEN dk.occupy_credit_quota_type <> '应付票据金额' THEN dk.this_amt ELSE 0 END) * (1/10000) AS loan_amt -- 贷款余额 + ,SUM(CASE WHEN dk.occupy_credit_quota_type <> '应付票据金额' THEN dk.year_amt ELSE 0 END) * (1/10000) AS loan_amt_year -- 贷款余额-年初值 + ,(SUM(CASE WHEN dk.occupy_credit_quota_type <> '应付票据金额' THEN dk.this_amt ELSE 0 END) + - SUM(CASE WHEN dk.occupy_credit_quota_type <> '应付票据金额' THEN dk.year_amt ELSE 0 END)) * (1/10000) AS loan_amt_year_add -- 贷款余额-较年初增长 + + ,SUM(CASE WHEN dk.occupy_credit_quota_type <> '应付票据金额' THEN dk.last_amt ELSE 0 END) * (1/10000) AS loan_amt_yy -- 贷款余额-去年同期 + ,(SUM(CASE WHEN dk.occupy_credit_quota_type <> '应付票据金额' THEN dk.this_amt ELSE 0 END) + - SUM(CASE WHEN dk.occupy_credit_quota_type <> '应付票据金额' THEN dk.last_amt ELSE 0 END)) * (1/10000) AS loan_amt_last_year -- 贷款余额-同比增长额 + + ,SUM(CASE WHEN dk.occupy_credit_quota_type = '应付票据金额' THEN dk.this_amt ELSE 0 END) * (1/10000) AS payable_amt -- 应付票据金额 + ,SUM(CASE WHEN dk.occupy_credit_quota_type = '应付票据金额' THEN dk.year_amt ELSE 0 END) * (1/10000) AS payable_amt_year -- 应付票据金额-年初值 + ,(SUM(CASE WHEN dk.occupy_credit_quota_type = '应付票据金额' THEN dk.this_amt ELSE 0 END) + - SUM(CASE WHEN dk.occupy_credit_quota_type = '应付票据金额' THEN dk.year_amt ELSE 0 END) ) * (1/10000) AS payable_amt_year_add -- 应付票据金额-较年初增长 + + ,SUM(CASE WHEN dk.occupy_credit_quota_type = '应付票据金额' THEN dk.last_amt ELSE 0 END) * (1/10000) AS payable_amt_yy -- 应付票据金额-去年同期 + ,(SUM(CASE WHEN dk.occupy_credit_quota_type = '应付票据金额' THEN dk.this_amt ELSE 0 END) + -SUM(CASE WHEN dk.occupy_credit_quota_type = '应付票据金额' THEN dk.last_amt ELSE 0 END)) * (1/10000) AS payable_amt_last_year -- 应付票据金额-同比增长额 + ,SUM(dk.this_amt) * (1/10000) as this_amt -- 合计 ,(SUM(dk.this_amt) - SUM(dk.year_amt)) * (1/10000) AS year_add -- 较年初增长 - ,(SUM(dk.this_amt) - SUM(dk.last_amt)) * (1/10000) AS last_year_add + ,(SUM(dk.this_amt) - SUM(dk.last_amt)) * (1/10000) AS last_year_add -- 去年同期增长 FROM dz left JOIN (select * from data_dk union all select * from data_yf ) AS dk ON dk.org_code = dz.org_code and dz.bank_code = dk.bank_code where dk.this_amt is not null or dk.year_amt is not null or dk.last_amt is not null -group by dz.bank_code,dz.bank_name + + + + +-- 银行负债-银行负债余额明细 +with data_dk as( + select + bank_code + ,corp_code as org_code + ,occupy_credit_quota_type + ,sum(case when + -- to_char(actual_term_day::date,'yyyy-MM-dd') > sysdate + -- and to_char(loan_day::date,'yyyy-MM-dd') <= sysdate + ${switch(sData_type, + '0',"to_char(actual_term_day::date,'yyyy-MM-dd') > '" + sStart_date + "'" + "and to_char(loan_day::date,'yyyy-MM-dd') <= '"+ sStart_date + "'", + '1',"to_char(actual_term_day::date,'yyyy-MM') > '" + sStart_mon + "'" + "and to_char(loan_day::date,'yyyy-MM') <= '"+ sStart_mon + "'", + '2',"to_char(actual_term_day::date,'yyyy') > '" + sStart_year + "'" + "and to_char(loan_day::date,'yyyy') <= '"+ sStart_year + "'" + )} + + + then term_amt else 0 end) this_amt -- 贷款金额 + + from + ( + SELECT + bank_code + ,corp_code + ,occupy_credit_quota_type + ,case when actual_amort_day is not null then actual_amort_day else term_day end AS actual_term_day + ,term_amt + ,loan_day + FROM sdi_xdata.fim_liab_amort_plan + ) A + where -- 优先获取实际还款日期,再取到期日期 + -- to_char(case when actual_amort_day is not null then actual_amort_day else term_day end::date,'yyyy-MM-dd') > sysdate::date - interval '1 year' -- 去年同期的日期 + ${switch(sData_type, + '0',"to_char(actual_term_day::date,'yyyy-MM-dd') > '" + sStart_date + "'::date - interval '1 year'", + '1',"to_char(actual_term_day::date,'yyyy-MM-dd') > '" + CONCATENATE(sStart_mon,'-01') + "'::date - interval '1 year'", + '2',"to_char(actual_term_day::date,'yyyy-MM-dd') > '" + CONCATENATE(sStart_year,'-01-01') + "'::date - interval '1 year'" + )} + + -- and to_char(loan_day::date,'yyyy-MM-dd') <= sysdate::date -- 借款日期要在查询日期之前的 + + ${switch(sData_type, + '0',"and to_char(loan_day::date,'yyyy-MM-dd') <= '" + sStart_date + "'::date", + '1',"and to_char(loan_day::date,'yyyy-MM') <= '" + sStart_mon + "'", + '2',"and to_char(loan_day::date,'yyyy') <= '" + sStart_year + "'" + )} + and exists ( + select + 1 + from + dm.dm_bi_user_permisson + where + bi_user = '${fine_username}' + and per_model IN ('all','fim') + and ( + is_all = 1 + OR per_code = A.corp_code + ) + ) + group by + bank_code, + corp_code , + occupy_credit_quota_type +), + data_yf as ( + select + a.draw_bank_code --出票人银行 + ,a.corp_code + ,'应付票据金额' as occupy_credit_quota_type + ,sum(case when + -- to_char(end_date,'yyyy-MM-dd') > sysdate::date + -- and to_char(issue_date,'yyyy-MM-dd') <= sysdate::date + + ${switch(sData_type, + '0',"to_char(end_date::date,'yyyy-MM-dd') > '" + sStart_date + "'" + "and to_char(issue_date::date,'yyyy-MM-dd') <= '"+ sStart_date + "'", + '1',"to_char(end_date::date,'yyyy-MM') > '" + sStart_mon + "'" + "and to_char(issue_date::date,'yyyy-MM') <= '"+ sStart_mon + "'", + '2',"to_char(end_date::date,'yyyy') > '" + sStart_year + "'" + "and to_char(issue_date::date,'yyyy') <= '"+ sStart_year + "'" + )} + then a.amt else 0 end) this_amt -- 票面金额 + + from + dwr.fact_fim_draft_flow a + where + operate_flag='1003' -- 开票 + -- and to_char(end_date,'yyyy-MM-dd') > sysdate::date - interval '1 year' -- 到期日期 + + ${switch(sData_type, + '0',"and to_char(end_date,'yyyy-MM-dd') > '" + sStart_date + "'::date - interval '1 year'", + '1',"and to_char(end_date,'yyyy-MM-dd') > '" + CONCATENATE(sStart_mon,'-01') + "'::date - interval '1 year'", + '2',"and to_char(end_date,'yyyy-MM-dd') > '" + CONCATENATE(sStart_year,'-01-01') + "'::date - interval '1 year'" + )} + + -- and to_char(issue_date,'yyyy-MM-dd') <= sysdate::date -- 出票日期 + + ${switch(sData_type, + '0',"and to_char(issue_date,'yyyy-MM-dd') <= '" + sStart_date + "'::date", + '1',"and to_char(issue_date,'yyyy-MM') <= '" + sStart_mon + "'", + '2',"and to_char(issue_date,'yyyy') <= '" + sStart_year + "'" + )} + and exists ( + select + 1 + from + dm.dm_bi_user_permisson + where + bi_user = '${fine_username}' + and per_model IN ('all','fim') + and ( + is_all = 1 + OR per_code = A.corp_code + ) + ) + group by + a.corp_code,a.draw_bank_code + -- order by + -- a.corp_code,a.draw_bank_code + ), + dz as ( + SELECT distinct + bank.code AS bank_code, + bank.abbreviation AS bank_name, + org.code AS org_code, + org.abbreviation AS org_name + FROM + sdi_xdata.fim_liab_compare bank, + sdi_xdata.fim_liab_compare org + WHERE + bank.LABEL = '银行' + AND org.LABEL = '主体' + and ${if(len(sCorp)=0,"1=1","org.code in ('"+sCorp+"') ")} + ) +SELECT + dz.bank_name + ,SUM(CASE WHEN dk.occupy_credit_quota_type <> '应付票据金额' THEN dk.this_amt ELSE 0 END) * (1/10000) AS loan_amt -- 贷款余额 + ,SUM(CASE WHEN dk.occupy_credit_quota_type = '应付票据金额' THEN dk.this_amt ELSE 0 END) * (1/10000) AS payable_amt -- 应付票据金额 +FROM + dz + left JOIN (select * from data_dk union all select * from data_yf ) AS dk ON dk.org_code = dz.org_code and dz.bank_code = dk.bank_code +where + dk.this_amt is not null +GROUP BY dz.bank_name -- ${switch(sData_type,'0',sStart_date,'1',sStart_mon,'2',sStart_year)} + +-- 银行负债-银行分期限负债情况 +with data_dk as( + select + bank_code + ,corp_code as org_code + ,occupy_credit_quota_type + ,sum(case when + -- to_char(actual_term_day::date,'yyyy-MM-dd') > sysdate + -- and to_char(loan_day::date,'yyyy-MM-dd') <= sysdate + ${switch(sData_type, + '0',"to_char(actual_term_day::date,'yyyy-MM-dd') > '" + sStart_date + "'" + "and to_char(loan_day::date,'yyyy-MM-dd') <= '"+ sStart_date + "'", + '1',"to_char(actual_term_day::date,'yyyy-MM') > '" + sStart_mon + "'" + "and to_char(loan_day::date,'yyyy-MM') <= '"+ sStart_mon + "'", + '2',"to_char(actual_term_day::date,'yyyy') > '" + sStart_year + "'" + "and to_char(loan_day::date,'yyyy') <= '"+ sStart_year + "'" + )} + + + then term_amt else 0 end) this_amt -- 贷款金额 + + from + ( + SELECT + bank_code + ,corp_code + ,occupy_credit_quota_type + ,case when actual_amort_day is not null then actual_amort_day else term_day end AS actual_term_day + ,term_amt + ,loan_day + FROM sdi_xdata.fim_liab_amort_plan + ) A + where -- 优先获取实际还款日期,再取到期日期 + -- to_char(case when actual_amort_day is not null then actual_amort_day else term_day end::date,'yyyy-MM-dd') > sysdate::date - interval '1 year' -- 去年同期的日期 + ${switch(sData_type, + '0',"to_char(actual_term_day::date,'yyyy-MM-dd') > '" + sStart_date + "'::date - interval '1 year'", + '1',"to_char(actual_term_day::date,'yyyy-MM-dd') > '" + CONCATENATE(sStart_mon,'-01') + "'::date - interval '1 year'", + '2',"to_char(actual_term_day::date,'yyyy-MM-dd') > '" + CONCATENATE(sStart_year,'-01-01') + "'::date - interval '1 year'" + )} + + -- and to_char(loan_day::date,'yyyy-MM-dd') <= sysdate::date -- 借款日期要在查询日期之前的 + + ${switch(sData_type, + '0',"and to_char(loan_day::date,'yyyy-MM-dd') <= '" + sStart_date + "'::date", + '1',"and to_char(loan_day::date,'yyyy-MM') <= '" + sStart_mon + "'", + '2',"and to_char(loan_day::date,'yyyy') <= '" + sStart_year + "'" + )} + and exists ( + select + 1 + from + dm.dm_bi_user_permisson + where + bi_user = '${fine_username}' + and per_model IN ('all','fim') + and ( + is_all = 1 + OR per_code = A.corp_code + ) + ) + group by + bank_code, + corp_code , + occupy_credit_quota_type +), + dz as ( + SELECT distinct + bank.code AS bank_code, + bank.abbreviation AS bank_name, + org.code AS org_code, + org.abbreviation AS org_name + FROM + sdi_xdata.fim_liab_compare bank, + sdi_xdata.fim_liab_compare org + WHERE + bank.LABEL = '银行' + AND org.LABEL = '主体' + and ${if(len(sCorp)=0,"1=1","org.code in ('"+sCorp+"') ")} + ) +SELECT + dk.occupy_credit_quota_type + ,SUM(dk.this_amt) * (1/10000) AS 负债余额 -- 负债余额 + +FROM + dz + left JOIN (select * from data_dk) AS dk ON dk.org_code = dz.org_code and dz.bank_code = dk.bank_code +where + dk.this_amt is not null +GROUP BY occupy_credit_quota_type +; \ No newline at end of file