首页财务部分+庄园之旅城市经理权限+资金日报完善
This commit is contained in:
parent
e26f0e16ef
commit
79de4dbd64
@ -774,272 +774,699 @@ ORDER BY to_char(trade_time,'MM')
|
||||
|
||||
-- 期初余额 斌哥处理
|
||||
|
||||
|
||||
-- 资金收入/流入
|
||||
|
||||
WITH amt_base AS
|
||||
(
|
||||
(
|
||||
-- 映射日报科目对照关系
|
||||
SELECT
|
||||
stat_date -- 统计日期
|
||||
-- todo:期初余额
|
||||
-- 其中:可用存款
|
||||
-- 银行承兑汇票
|
||||
-- 香港公司账户资金
|
||||
-- 受限资金
|
||||
SELECT
|
||||
stat_date -- 统计日期
|
||||
-- todo:期初余额
|
||||
-- 其中:可用存款
|
||||
-- 银行承兑汇票
|
||||
-- 香港公司账户资金
|
||||
-- 受限资金
|
||||
|
||||
-- 收入
|
||||
,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name = '对外销售酒类回款' AND corp_code <> '0201' THEN amt ELSE 0 END) AS finished_in_amt -- 成品酒销售回款
|
||||
,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name = '对外销售酒类回款' AND corp_code = '0201' THEN amt ELSE 0 END) AS loose_in_amt -- 散酒销售回款
|
||||
,SUM(CASE WHEN trade_direction = '收入' AND trade_item IN('共建基金','红包充值费用','转货款','保证金') THEN amt ELSE 0 END) AS redpkg_in_amt -- 红包款/转货款/保证金/共建
|
||||
,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name IN('取得贷款','开票') THEN amt ELSE 0 END) AS bank_in_amt -- 银行融资
|
||||
,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name IN('搬迁补偿/政府补助') THEN amt ELSE 0 END) AS compen_in_amt -- 政府补助
|
||||
,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name IN('对外销售非酒类回款','吸收投资','税费返还','其他收入') AND trade_item not IN('红包充值费用','转货款') THEN amt ELSE 0 END) AS other_in_amt -- 其他零星收款
|
||||
-- 支出
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('原材料','辅料','低值易耗') THEN amt ELSE 0 END) AS low_mater_out_amt -- 原辅低耗材料
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('散酒') THEN amt ELSE 0 END) AS loose_liquor_out_amt -- 外购散酒
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('外购包材','外协加工费') THEN amt ELSE 0 END) AS outsourced_out_amt -- 外购包材/外协加工
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('其它制造费用','水电气费') THEN amt ELSE 0 END) AS make_out_amt -- 制造费用/能源费用
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('广告费','市场活动投入','其它销售费用','委外服务(庄园)','酒店采购','储运费') THEN amt ELSE 0 END) AS ad_out_amt -- 广告/市场活动/庄园采购/储运
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('退共建基金','票据变现收入') THEN amt ELSE 0 END) AS build_out_amt -- 共建支出
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('退经销商货款') THEN amt ELSE 0 END) AS dealer_out_amt -- 经销商退款
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('职工薪酬及福利') THEN amt ELSE 0 END) AS salary_out_amt -- 薪酬及福利
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('税费') THEN amt ELSE 0 END) AS tax_out_amt -- 税金缴纳
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('其它管理费用','财务手续费用','研发费用') THEN amt ELSE 0 END) AS manage_out_amt -- 管理费用/研发费用
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('土地支出') THEN amt ELSE 0 END) AS land_out_amt -- 土地支出
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('土建支出') THEN amt ELSE 0 END) AS land_build_out_amt -- 土建支出
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('设备支出','维修支出') THEN amt ELSE 0 END) AS repair_out_amt -- 设备及维修支出
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('偿还贷款') THEN amt ELSE 0 END) AS repay_out_amt -- 归还贷款
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('利息支出') THEN amt ELSE 0 END) AS interest_out_amt -- 利息支出
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('分配股利') THEN amt ELSE 0 END) AS dividend_out_amt -- 分配股利
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('退保证金','对外捐赠','支付其他代收代付','其他(含未确认支出)','票据变现支出') THEN amt ELSE 0 END)
|
||||
+ -1 * SUM(CASE WHEN trade_direction = '收入' AND plan_item_name in('票据变现收入') THEN amt ELSE 0 END )
|
||||
AS other_out_amt -- 其他(捐赠等)
|
||||
-- 收入
|
||||
,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name = '对外销售酒类回款' AND corp_code <> '0201' THEN amt ELSE 0 END) AS finished_in_amt -- 成品酒销售回款
|
||||
,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name = '对外销售酒类回款' AND corp_code = '0201' THEN amt ELSE 0 END) AS loose_in_amt -- 散酒销售回款
|
||||
,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name in ('保证金','共建基金') THEN amt ELSE 0 END)
|
||||
+ SUM(CASE WHEN trade_direction = '收入' AND trade_item IN('红包充值费用','转货款') THEN amt ELSE 0 END) AS redpkg_in_amt -- 红包款/转货款/保证金/共建
|
||||
,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name IN('取得贷款','开票') THEN amt ELSE 0 END) AS bank_in_amt -- 银行融资
|
||||
,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name IN('搬迁补偿/政府补助') THEN amt ELSE 0 END) AS compen_in_amt -- 政府补助
|
||||
,SUM(CASE WHEN trade_direction = '收入' AND plan_item_name IN('对外销售非酒类回款','吸收投资','税费返还','其他收入(含未确认收入)','票据变现收入','利息收入') THEN amt ELSE 0 END)
|
||||
+ -1 * SUM(CASE WHEN trade_direction = '收入' AND trade_item IN('红包充值费用','转货款') THEN amt ELSE 0 END)
|
||||
AS other_in_amt -- 其他零星收款
|
||||
-- 支出
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('原材料','辅料','低值易耗') THEN amt ELSE 0 END) AS low_mater_out_amt -- 原辅低耗材料
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('散酒') THEN amt ELSE 0 END) AS loose_liquor_out_amt -- 外购散酒
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('外购包材','外协加工费') THEN amt ELSE 0 END) AS outsourced_out_amt -- 外购包材/外协加工
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('其它制造费用','水电气费') THEN amt ELSE 0 END) AS make_out_amt -- 制造费用/能源费用
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('广告费','市场活动投入','其它销售费用','委外服务(庄园)','酒店采购','储运费') THEN amt ELSE 0 END) AS ad_out_amt -- 广告/市场活动/庄园采购/储运
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('退共建基金') THEN amt ELSE 0 END)
|
||||
+ SUM(CASE WHEN trade_direction = '收入' AND plan_item_name in('票据变现收入') THEN amt ELSE 0 END )
|
||||
AS build_out_amt -- 共建支出
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('退经销商货款') THEN amt ELSE 0 END) AS dealer_out_amt -- 经销商退款
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('职工薪酬及福利') THEN amt ELSE 0 END) AS salary_out_amt -- 薪酬及福利
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('税费') THEN amt ELSE 0 END) AS tax_out_amt -- 税金缴纳
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('其它管理费用','财务手续费用','研发费用') THEN amt ELSE 0 END) AS manage_out_amt -- 管理费用/研发费用
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('土地支出') THEN amt ELSE 0 END) AS land_out_amt -- 土地支出
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('土建支出') THEN amt ELSE 0 END) AS land_build_out_amt -- 土建支出
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('设备支出','维修支出') THEN amt ELSE 0 END) AS repair_out_amt -- 设备及维修支出
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('偿还贷款') THEN amt ELSE 0 END) AS repay_out_amt -- 归还贷款
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('利息支出') THEN amt ELSE 0 END) AS interest_out_amt -- 利息支出
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('分配股利') THEN amt ELSE 0 END) AS dividend_out_amt -- 分配股利
|
||||
,SUM(CASE WHEN trade_direction = '支出' AND plan_item_name in('退保证金','对外捐赠','支付其他代收代付','其他(含未确认支出)','票据变现支出','投资支出') THEN amt ELSE 0 END)
|
||||
+ -1 * SUM(CASE WHEN trade_direction = '收入' AND plan_item_name in('票据变现收入') THEN amt ELSE 0 END )
|
||||
AS other_out_amt -- 其他(捐赠等)
|
||||
|
||||
-- todo:期末余额
|
||||
-- todo:期末余额
|
||||
|
||||
FROM dm.dm_fim_fud_indicator fp
|
||||
where fp.trade_direction IN('收入','支出')
|
||||
and fp.indi_type='执行'
|
||||
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
|
||||
)
|
||||
)
|
||||
FROM dm.dm_fim_fud_indicator fp
|
||||
where fp.trade_direction IN('收入','支出')
|
||||
and fp.indi_type='执行'
|
||||
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
|
||||
)
|
||||
)
|
||||
|
||||
AND stat_date >= date '2023-01-01'
|
||||
GROUP BY stat_date
|
||||
),amt_base_class AS
|
||||
(
|
||||
AND stat_date >= date '2023-01-01'
|
||||
GROUP BY stat_date
|
||||
),amt_base_class AS
|
||||
(
|
||||
-- 为方便计算同环比方便,使用扩展方式,而不是计算所有指标
|
||||
-- 收入
|
||||
SELECT
|
||||
stat_date
|
||||
,'收入' AS fee_class
|
||||
,'成品酒销售回款' AS fee_type
|
||||
,finished_in_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'收入' AS fee_class
|
||||
,'散酒销售回款' as fee_type
|
||||
,loose_in_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'收入' AS fee_class
|
||||
,'红包款/转货款/保证金/共建' as fee_type
|
||||
,redpkg_in_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'收入' AS fee_clas
|
||||
,'政府补助' as fee_type
|
||||
,compen_in_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'收入' AS fee_class
|
||||
,'其他零星收款' as fee_type
|
||||
,other_in_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
-- 支出
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'原辅低耗材料' as fee_type
|
||||
,low_mater_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'外购散酒' as fee_type
|
||||
,loose_liquor_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'外购包材/外协加工' as fee_type
|
||||
,outsourced_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'制造费用/能源费用' as fee_type
|
||||
,make_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'广告/市场活动/庄园采购/储运' as fee_type
|
||||
,ad_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'共建支出' as fee_type
|
||||
,build_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'经销商退款' as fee_type
|
||||
,dealer_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'薪酬及福利' as fee_type
|
||||
,salary_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'税金缴纳' as fee_type
|
||||
,tax_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'管理费用/研发费用' as fee_type
|
||||
,manage_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'土地支出' as fee_type
|
||||
,land_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'土建支出' as fee_type
|
||||
,land_build_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'设备及维修支出' as fee_type
|
||||
,repair_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'归还贷款' as fee_type
|
||||
,repay_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'利息支出' as fee_type
|
||||
,interest_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'分配股利' as fee_type
|
||||
,dividend_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'其他(捐赠等)' as fee_type
|
||||
,other_out_amt AS amt
|
||||
FROM amt_base
|
||||
)
|
||||
SELECT
|
||||
stat_date
|
||||
,'收入' AS fee_class
|
||||
,'成品酒销售回款' AS fee_type
|
||||
,finished_in_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'收入' AS fee_class
|
||||
,'散酒销售回款' as fee_type
|
||||
,loose_in_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'收入' AS fee_class
|
||||
,'红包款/转货款/保证金/共建' as fee_type
|
||||
,redpkg_in_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'收入' AS fee_clas
|
||||
,'政府补助' as fee_type
|
||||
,compen_in_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'收入' AS fee_clas
|
||||
,'银行融资' as fee_type
|
||||
,bank_in_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'收入' AS fee_class
|
||||
,'其他零星收款' as fee_type
|
||||
,other_in_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
/*增加资金汇兑损益*/
|
||||
select date(concat_ws(',',account_year,account_month,'1')) as stat_date
|
||||
,'收入' AS fee_class
|
||||
,'其他零星收款' as fee_type
|
||||
,losses_amt AS amt
|
||||
from sdi_hzg.exchange_gains_losses
|
||||
UNION ALL
|
||||
-- 支出
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'原辅低耗材料' as fee_type
|
||||
,low_mater_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'外购散酒' as fee_type
|
||||
,loose_liquor_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'外购包材/外协加工' as fee_type
|
||||
,outsourced_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'制造费用/能源费用' as fee_type
|
||||
,make_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'广告/市场活动/庄园采购/储运' as fee_type
|
||||
,ad_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'共建支出' as fee_type
|
||||
,build_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'经销商退款' as fee_type
|
||||
,dealer_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'薪酬及福利' as fee_type
|
||||
,salary_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'税金缴纳' as fee_type
|
||||
,tax_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'管理费用/研发费用' as fee_type
|
||||
,manage_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'土地支出' as fee_type
|
||||
,land_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'土建支出' as fee_type
|
||||
,land_build_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'设备及维修支出' as fee_type
|
||||
,repair_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'归还贷款' as fee_type
|
||||
,repay_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'利息支出' as fee_type
|
||||
,interest_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'分配股利' as fee_type
|
||||
,dividend_out_amt AS amt
|
||||
FROM amt_base
|
||||
UNION ALL
|
||||
SELECT
|
||||
stat_date
|
||||
,'支出' AS fee_class
|
||||
,'其他(捐赠等)' as fee_type
|
||||
,other_out_amt AS amt
|
||||
FROM amt_base
|
||||
)
|
||||
SELECT
|
||||
fee_class
|
||||
,fee_type
|
||||
,SUM(CASE WHEN to_char(stat_date,'yyyy-MM-dd') = '${FORMAT(today(),"yyyy-MM-dd")}'
|
||||
THEN amt ELSE 0 END) / 10000 AS today_amt -- 本日
|
||||
,SUM(CASE WHEN to_char(stat_date,'yyyy-MM') = '${FORMAT(today(),"yyyy-MM")}'
|
||||
THEN amt ELSE 0 END) / 10000 AS month_amt -- 本月累计
|
||||
,SUM(CASE WHEN to_char(stat_date,'yyyy') = '${FORMAT(today(),"yyyy")}'
|
||||
THEN amt ELSE 0 END) / 10000 AS year_amt -- 本年累计
|
||||
,SUM(CASE WHEN to_char(stat_date,'yyyy') = '${FORMAT(YEARDELTA(today(),-1),"yyyy")}'
|
||||
THEN amt ELSE 0 END) / 10000 AS last_year_amt -- 去年同期累计
|
||||
fee_class
|
||||
,fee_type
|
||||
,SUM(CASE WHEN to_char(stat_date,'yyyy-MM-dd') = '${FORMAT(today(),"yyyy-MM-dd")}'
|
||||
THEN amt ELSE 0 END) / 10000 AS today_amt -- 本日
|
||||
,SUM(CASE WHEN to_char(stat_date,'yyyy-MM') = '${FORMAT(today(),"yyyy-MM")}'
|
||||
THEN amt ELSE 0 END) / 10000 AS month_amt -- 本月累计
|
||||
,SUM(CASE WHEN to_char(stat_date,'yyyy') = '${FORMAT(today(),"yyyy")}'
|
||||
THEN amt ELSE 0 END) / 10000 AS year_amt -- 本年累计
|
||||
,SUM(CASE WHEN to_char(stat_date,'yyyy') = '${FORMAT(YEARDELTA(today(),-1),"yyyy")}'
|
||||
THEN amt ELSE 0 END) / 10000 AS last_year_amt -- 去年同期累计
|
||||
FROM amt_base_class
|
||||
GROUP BY fee_type,fee_class
|
||||
ORDER BY
|
||||
decode(fee_type
|
||||
,'成品酒销售回款','a'
|
||||
,'散酒销售回款','b'
|
||||
,'红包款/转货款/保证金/共建','c'
|
||||
,'银行融资','d'
|
||||
,'政府补助','e'
|
||||
,'其他零星收款','f'
|
||||
,'原辅低耗材料','g'
|
||||
,'外购散酒','h'
|
||||
,'外购包材/外协加工','i'
|
||||
,'制造费用/能源费用','j'
|
||||
,'广告/市场活动/庄园采购/储运','k'
|
||||
,'共建支出','l'
|
||||
,'经销商退款','m'
|
||||
,'薪酬及福利','n'
|
||||
,'税金缴纳','o'
|
||||
,'管理费用/研发费用','p'
|
||||
,'土地支出','q'
|
||||
,'土建支出','r'
|
||||
,'设备及维修支出','m'
|
||||
,'归还贷款','n'
|
||||
,'利息支出','o'
|
||||
,'分配股利','v'
|
||||
,'其他(捐赠等)','w'
|
||||
decode(fee_type
|
||||
,'成品酒销售回款','a'
|
||||
,'散酒销售回款','b'
|
||||
,'红包款/转货款/保证金/共建','c'
|
||||
,'银行融资','d'
|
||||
,'政府补助','e'
|
||||
,'其他零星收款','f'
|
||||
,'原辅低耗材料','g'
|
||||
,'外购散酒','h'
|
||||
,'外购包材/外协加工','i'
|
||||
,'制造费用/能源费用','j'
|
||||
,'广告/市场活动/庄园采购/储运','k'
|
||||
,'共建支出','l'
|
||||
,'经销商退款','m'
|
||||
,'薪酬及福利','n'
|
||||
,'税金缴纳','o'
|
||||
,'管理费用/研发费用','p'
|
||||
,'土地支出','q'
|
||||
,'土建支出','r'
|
||||
,'设备及维修支出','m'
|
||||
,'归还贷款','n'
|
||||
,'利息支出','o'
|
||||
,'分配股利','v'
|
||||
,'其他(捐赠等)','w'
|
||||
)
|
||||
|
||||
|
||||
-- ======================================
|
||||
-- 本年期初现金余额
|
||||
-- ======================================
|
||||
|
||||
--本月期初
|
||||
with md as (
|
||||
select
|
||||
bank_account,
|
||||
max(report_date) as max_report_date
|
||||
from dwi.dwi_fim_bank_account_balance
|
||||
where report_date<date_trunc('year',current_date)
|
||||
group by bank_account
|
||||
),xj as (
|
||||
select
|
||||
a.corp_code,
|
||||
a.bank_account,
|
||||
sum(a.current_balance) as current_balance,
|
||||
a.currency
|
||||
from dwi.dwi_fim_bank_account_balance a
|
||||
where exists (
|
||||
select 1 from md
|
||||
where a.bank_account=md.bank_account and a.report_date=md.max_report_date
|
||||
)
|
||||
and a.account_state='开户'
|
||||
group by a.corp_code, a.currency ,a.bank_account
|
||||
) , rto as (/*汇率表*/
|
||||
select decode(currency_name,'加拿大元','加元',currency_name) as currency_name,
|
||||
conversion_price_boc/100 as rate,
|
||||
date_trunc('day',exchange_publish_time) as rto_date,
|
||||
row_number() over (partition by currency_name,
|
||||
date_trunc('day',exchange_publish_time)
|
||||
order by exchange_publish_time desc) as ridx
|
||||
from sdi_xdata.boc_exchange_rate
|
||||
where date_trunc('day',exchange_publish_time)=date_trunc('year',current_date)-1
|
||||
)
|
||||
select
|
||||
re.corp_code,
|
||||
sum(current_balance*nvl(rto.rate,1))/10000 as yb_balance,
|
||||
if((dba.category_name in ('专用户','保证金户') and re.bank_account!='22195901040000147' ) or re.bank_account='信用证保证金',1,0) as is_limit
|
||||
from xj re
|
||||
inner join dwr.dim_corp c on re.corp_code=c.corp_code and c.corp_group='股份'
|
||||
left join rto on re.currency=rto.currency_name and rto.ridx=1
|
||||
left join dwr.dim_bank_account dba on decode(length(re.bank_account), 17,
|
||||
substring(re.bank_account, 3),
|
||||
re.bank_account)=decode(length(dba.accountnumber), '17',
|
||||
substring(dba.accountnumber, 3),
|
||||
dba.accountnumber)
|
||||
and dba.account_owner_class='langjiu'
|
||||
where current_balance!=0
|
||||
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
|
||||
)
|
||||
)
|
||||
group by re.corp_code,if((dba.category_name in ('专用户','保证金户') and re.bank_account!='22195901040000147' ) or re.bank_account='信用证保证金',1,0)
|
||||
|
||||
|
||||
|
||||
-- ======================================
|
||||
-- 本日期初余额
|
||||
-- ======================================
|
||||
with tpj as (
|
||||
select
|
||||
a.corp_code,
|
||||
'收入' as trade_direction,
|
||||
draftcode,
|
||||
a.owner_bank_account,
|
||||
sum(a.amt) as amt
|
||||
from sdi_oth.fim_draft_balance a
|
||||
group by a.corp_code,
|
||||
draftcode,
|
||||
owner_bank_account
|
||||
union all
|
||||
select
|
||||
a.corp_code,
|
||||
trade_direction,
|
||||
a.draftcode,
|
||||
a.owner_bank_account,
|
||||
amt
|
||||
from dwr.fact_fim_draft_flow a
|
||||
where a.trade_time>=date'2024-08-01'
|
||||
and a.trade_time<date'${FORMAT(today(),"yyyy-MM-dd")}'
|
||||
and nvl(a.draft_state,'x') not in ('未签收','背书中','登记中','已作废','承兑中','出票中','贴现中','质押中','收款中','被拒付','拒绝签收')
|
||||
) ,pj as (/*票据余额*/
|
||||
select
|
||||
a.corp_code,
|
||||
sum(decode(trade_direction,'支出',-1*amt,amt)) as balance
|
||||
from tpj a
|
||||
inner join dwr.dim_corp c on a.corp_code =c.corp_code and c.corp_group='股份'
|
||||
group by a.corp_code
|
||||
having sum(decode(trade_direction,'支出',-1*amt,amt))>0
|
||||
), md as (
|
||||
select
|
||||
bank_account,
|
||||
max(report_date) as max_report_date
|
||||
from dwi.dwi_fim_bank_account_balance
|
||||
where report_date<date'${FORMAT(today(),"yyyy-MM-dd")}'
|
||||
group by bank_account
|
||||
),re as (/*汇总票据和银行余额*/
|
||||
select
|
||||
a.corp_code,
|
||||
a.current_balance,
|
||||
a.currency,
|
||||
'现金' as amt_type,
|
||||
if((dba.category_name in ('专用户','保证金户') and a.bank_account!='22195901040000147' ) or a.bank_account='信用证保证金',1,0) as is_limit--受限资金金额
|
||||
from dwi.dwi_fim_bank_account_balance a
|
||||
inner join dwr.dim_corp c on a.corp_code=c.corp_code and c.corp_group='股份'
|
||||
left join dwr.dim_bank_account dba on decode(length(a.bank_account), 17,
|
||||
substring(a.bank_account, 3),
|
||||
a.bank_account)=decode(length(dba.accountnumber), '17',
|
||||
substring(dba.accountnumber, 3),
|
||||
dba.accountnumber)
|
||||
and dba.account_owner_class='langjiu'
|
||||
where exists (
|
||||
select 1 from md
|
||||
where a.bank_account=md.bank_account and a.report_date=md.max_report_date
|
||||
)
|
||||
and a.account_state='开户'
|
||||
union all
|
||||
select
|
||||
corp_code,
|
||||
sum(balance) as current_balance,
|
||||
'人民币' as currency,
|
||||
'票据' as amt_type,
|
||||
0 as is_limit
|
||||
from pj
|
||||
group by corp_code),
|
||||
rto as (/*汇率表*/
|
||||
select decode(currency_name,'加拿大元','加元',currency_name) as currency_name,
|
||||
conversion_price_boc/100 as rate,
|
||||
date_trunc('day',exchange_publish_time) as rto_date,
|
||||
row_number() over (partition by currency_name,
|
||||
date_trunc('day',exchange_publish_time)
|
||||
order by exchange_publish_time desc) as ridx
|
||||
from sdi_xdata.boc_exchange_rate
|
||||
where date_trunc('day',exchange_publish_time)=date'${FORMAT(today(),"yyyy-MM-dd")}'
|
||||
)
|
||||
select
|
||||
corp_code,
|
||||
current_balance*nvl(rto.rate,1)/10000 as yb_balance,
|
||||
amt_type,
|
||||
is_limit
|
||||
from re
|
||||
left join rto on re.currency=rto.currency_name and rto.ridx=1
|
||||
where current_balance!=0
|
||||
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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
-- ======================================
|
||||
-- 本日期末余额
|
||||
-- ======================================
|
||||
with tpj as (
|
||||
select
|
||||
a.corp_code,
|
||||
'收入' as trade_direction,
|
||||
draftcode,
|
||||
a.owner_bank_account,
|
||||
sum(a.amt) as amt
|
||||
from sdi_oth.fim_draft_balance a
|
||||
group by a.corp_code,
|
||||
draftcode,
|
||||
owner_bank_account
|
||||
union all
|
||||
select
|
||||
a.corp_code,
|
||||
trade_direction,
|
||||
a.draftcode,
|
||||
a.owner_bank_account,
|
||||
amt
|
||||
from dwr.fact_fim_draft_flow a
|
||||
where a.trade_time>=date'2024-08-01'
|
||||
and a.trade_time<current_date + interval '1 day'
|
||||
and nvl(a.draft_state,'x') not in ('未签收','背书中','登记中','已作废','承兑中','出票中','贴现中','质押中','收款中','被拒付','拒绝签收')
|
||||
) ,pj as (/*票据余额*/
|
||||
select
|
||||
a.corp_code,
|
||||
sum(decode(trade_direction,'支出',-1*amt,amt)) as balance
|
||||
from tpj a
|
||||
inner join dwr.dim_corp c on a.corp_code =c.corp_code and c.corp_group='股份'
|
||||
group by a.corp_code
|
||||
having sum(decode(trade_direction,'支出',-1*amt,amt))>0
|
||||
), md as (
|
||||
select
|
||||
bank_account,
|
||||
max(report_date) as max_report_date
|
||||
from dwi.dwi_fim_bank_account_balance
|
||||
where report_date<current_date + interval '1 day'
|
||||
group by bank_account
|
||||
),xj as (
|
||||
select
|
||||
a.corp_code,
|
||||
a.bank_account,
|
||||
sum(a.current_balance) as amt,
|
||||
a.currency
|
||||
from dwi.dwi_fim_bank_account_balance a
|
||||
where exists (
|
||||
select 1 from md
|
||||
where a.bank_account=md.bank_account and a.report_date=md.max_report_date
|
||||
)
|
||||
and a.account_state='开户'
|
||||
group by a.corp_code, a.currency ,a.bank_account
|
||||
union all
|
||||
select corp_code,
|
||||
owner_bank_account as bank_account,
|
||||
sum(decode(trade_direction,'收入',amt,-1*amt)) as amt,
|
||||
'人民币' as currency
|
||||
from dm.dm_fim_fud_indicator
|
||||
where amt_type='现金'
|
||||
and stat_date=current_date
|
||||
group by corp_code,owner_bank_account
|
||||
) ,re as (/*汇总票据和银行余额*/
|
||||
select
|
||||
a.corp_code,
|
||||
sum(a.amt) as current_balance,
|
||||
a.currency,
|
||||
'现金' as amt_type,
|
||||
if((dba.category_name in ('专用户','保证金户') and a.bank_account!='22195901040000147' ) or a.bank_account='信用证保证金',1,0) as is_limit--受限资金金额
|
||||
from xj a
|
||||
inner join dwr.dim_corp c on a.corp_code=c.corp_code and c.corp_group='股份'
|
||||
left join dwr.dim_bank_account dba on decode(length(a.bank_account), 17,
|
||||
substring(a.bank_account, 3),
|
||||
a.bank_account)=decode(length(dba.accountnumber), '17',
|
||||
substring(dba.accountnumber, 3),
|
||||
dba.accountnumber)
|
||||
and dba.account_owner_class='langjiu'
|
||||
group by a.corp_code,
|
||||
a.currency,
|
||||
if((dba.category_name in ('专用户','保证金户') and a.bank_account!='22195901040000147' ) or a.bank_account='信用证保证金',1,0)
|
||||
union all
|
||||
select
|
||||
corp_code,
|
||||
sum(balance) as current_balance,
|
||||
'人民币' as currency,
|
||||
'票据' as amt_type,
|
||||
0 as is_limit
|
||||
from pj
|
||||
group by corp_code),
|
||||
rto as (/*汇率表*/
|
||||
select decode(currency_name,'加拿大元','加元',currency_name) as currency_name,
|
||||
conversion_price_boc/100 as rate,
|
||||
date_trunc('day',exchange_publish_time) as rto_date,
|
||||
row_number() over (partition by currency_name,
|
||||
date_trunc('day',exchange_publish_time)
|
||||
order by exchange_publish_time desc) as ridx
|
||||
from sdi_xdata.boc_exchange_rate
|
||||
where date_trunc('day',exchange_publish_time)=current_date
|
||||
)
|
||||
select
|
||||
corp_code,
|
||||
current_balance*nvl(rto.rate,1)/10000 as yb_balance,
|
||||
amt_type,
|
||||
is_limit
|
||||
from re
|
||||
left join rto on re.currency=rto.currency_name and rto.ridx=1
|
||||
where current_balance!=0
|
||||
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
|
||||
)
|
||||
)
|
||||
|
||||
-- ======================================
|
||||
-- 本月期初现金余额
|
||||
-- ======================================
|
||||
|
||||
--本月期初
|
||||
with md as (
|
||||
select
|
||||
bank_account,
|
||||
max(report_date) as max_report_date
|
||||
from dwi.dwi_fim_bank_account_balance
|
||||
where report_date<date_trunc('month',current_date)
|
||||
group by bank_account
|
||||
),xj as (
|
||||
select
|
||||
a.corp_code,
|
||||
a.bank_account,
|
||||
sum(a.current_balance) as current_balance,
|
||||
a.currency
|
||||
from dwi.dwi_fim_bank_account_balance a
|
||||
where exists (
|
||||
select 1 from md
|
||||
where a.bank_account=md.bank_account and a.report_date=md.max_report_date
|
||||
)
|
||||
and a.account_state='开户'
|
||||
group by a.corp_code, a.currency ,a.bank_account
|
||||
) , rto as (/*汇率表*/
|
||||
select decode(currency_name,'加拿大元','加元',currency_name) as currency_name,
|
||||
conversion_price_boc/100 as rate,
|
||||
date_trunc('day',exchange_publish_time) as rto_date,
|
||||
row_number() over (partition by currency_name,
|
||||
date_trunc('day',exchange_publish_time)
|
||||
order by exchange_publish_time desc) as ridx
|
||||
from sdi_xdata.boc_exchange_rate
|
||||
where date_trunc('day',exchange_publish_time)=date_trunc('month',current_date)-1
|
||||
)
|
||||
select
|
||||
re.corp_code,
|
||||
sum(current_balance*nvl(rto.rate,1))/10000 as yb_balance,
|
||||
if((dba.category_name in ('专用户','保证金户') and re.bank_account!='22195901040000147' ) or re.bank_account='信用证保证金',1,0) as is_limit
|
||||
from xj re
|
||||
inner join dwr.dim_corp c on re.corp_code=c.corp_code and c.corp_group='股份'
|
||||
left join rto on re.currency=rto.currency_name and rto.ridx=1
|
||||
left join dwr.dim_bank_account dba on decode(length(re.bank_account), 17,
|
||||
substring(re.bank_account, 3),
|
||||
re.bank_account)=decode(length(dba.accountnumber), '17',
|
||||
substring(dba.accountnumber, 3),
|
||||
dba.accountnumber)
|
||||
and dba.account_owner_class='langjiu'
|
||||
where current_balance!=0
|
||||
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
|
||||
)
|
||||
)
|
||||
group by re.corp_code,if((dba.category_name in ('专用户','保证金户') and re.bank_account!='22195901040000147' ) or re.bank_account='信用证保证金',1,0)
|
||||
|
||||
|
||||
-- 期末余额
|
||||
|
||||
|
||||
-- ======================================
|
||||
-- 去年期初现金余额
|
||||
-- ======================================
|
||||
|
||||
--本月期初
|
||||
with md as (
|
||||
select
|
||||
bank_account,
|
||||
max(report_date) as max_report_date
|
||||
from dwi.dwi_fim_bank_account_balance
|
||||
where report_date<date_trunc('year',current_date)-interval '1 year'
|
||||
group by bank_account
|
||||
),xj as (
|
||||
select
|
||||
a.corp_code,
|
||||
a.bank_account,
|
||||
sum(a.current_balance) as current_balance,
|
||||
a.currency
|
||||
from dwi.dwi_fim_bank_account_balance a
|
||||
where exists (
|
||||
select 1 from md
|
||||
where a.bank_account=md.bank_account and a.report_date=md.max_report_date
|
||||
)
|
||||
and a.account_state='开户'
|
||||
group by a.corp_code, a.currency ,a.bank_account
|
||||
) , rto as (/*汇率表*/
|
||||
select decode(currency_name,'加拿大元','加元',currency_name) as currency_name,
|
||||
conversion_price_boc/100 as rate,
|
||||
date_trunc('day',exchange_publish_time) as rto_date,
|
||||
row_number() over (partition by currency_name,
|
||||
date_trunc('day',exchange_publish_time)
|
||||
order by exchange_publish_time desc) as ridx
|
||||
from sdi_xdata.boc_exchange_rate
|
||||
where date_trunc('day',exchange_publish_time)=date_trunc('year',current_date)-interval '1 year'-1
|
||||
)
|
||||
select
|
||||
re.corp_code,
|
||||
sum(current_balance*nvl(rto.rate,1))/10000 as yb_balance,
|
||||
if((dba.category_name in ('专用户','保证金户') and re.bank_account!='22195901040000147' ) or re.bank_account='信用证保证金',1,0) as is_limit
|
||||
from xj re
|
||||
inner join dwr.dim_corp c on re.corp_code=c.corp_code and c.corp_group='股份'
|
||||
left join rto on re.currency=rto.currency_name and rto.ridx=1
|
||||
left join dwr.dim_bank_account dba on decode(length(re.bank_account), 17,
|
||||
substring(re.bank_account, 3),
|
||||
re.bank_account)=decode(length(dba.accountnumber), '17',
|
||||
substring(dba.accountnumber, 3),
|
||||
dba.accountnumber)
|
||||
and dba.account_owner_class='langjiu'
|
||||
where current_balance!=0
|
||||
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
|
||||
)
|
||||
)
|
||||
group by re.corp_code,if((dba.category_name in ('专用户','保证金户') and re.bank_account!='22195901040000147' ) or re.bank_account='信用证保证金',1,0)
|
@ -39,29 +39,63 @@ and if(d.fist_dept_code in('0202/0215','0202/0216'),'0202/0226',d.fist_dept_code
|
||||
left join dwr.dim_department dmd on nvl(dda.city_unit_code,d.dept_code)=dmd.dept_code
|
||||
where team_type='庄园之旅'
|
||||
and bill_status='已审核'
|
||||
AND exists (
|
||||
select
|
||||
1
|
||||
from
|
||||
dm.dm_bi_user_permisson
|
||||
where
|
||||
bi_user = '${fine_username}'
|
||||
and per_model IN ('all','sal')
|
||||
and (
|
||||
is_all = 1
|
||||
OR per_code = dmd.fist_dept_code
|
||||
OR per_code = dmd.secd_dept_code
|
||||
OR per_code = dmd.thrd_dept_code
|
||||
OR per_code = dmd.dept_code
|
||||
)
|
||||
AND EXISTS (
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
dm.dm_bi_user_permisson
|
||||
WHERE
|
||||
bi_user = '${fine_username}'
|
||||
AND per_model IN ('all','sal')
|
||||
AND (
|
||||
is_all = 1
|
||||
OR per_code = dmd.fist_dept_code
|
||||
OR per_code = dmd.secd_dept_code
|
||||
OR per_code = dmd.thrd_dept_code
|
||||
OR per_code = dmd.dept_code
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
and (exists(
|
||||
|
||||
select * from dm.dm_bi_user_permisson
|
||||
|
||||
where bi_user= '${fine_username}'
|
||||
|
||||
and ( is_all=1
|
||||
|
||||
or per_code= dmd.fist_dept_code
|
||||
|
||||
or per_code= dmd.secd_dept_code
|
||||
|
||||
or per_code= dmd.thrd_dept_code
|
||||
|
||||
-- OR per_code = dmd.dept_code
|
||||
|
||||
)
|
||||
|
||||
) or exists ( /*城市经理权限配置*/
|
||||
|
||||
select 1 from dwr.dim_dealer_administer dda
|
||||
|
||||
where dda.city_unit_code= dmd.dept_code
|
||||
|
||||
and dda.city_manager_code='${fine_username}'
|
||||
|
||||
and dda.enabled_status=1
|
||||
|
||||
|
||||
|
||||
))
|
||||
|
||||
${if(len(sBu) == 0,"","and dmd.fist_dept_code IN ('"+sBu+"')")}
|
||||
${if(len(sRegion) == 0,"","and dmd.secd_dept_code IN ('"+sRegion+"')")}
|
||||
${if(len(sOffice) == 0,"","and dmd.thrd_dept_code IN ('"+sOffice+"')")}
|
||||
${if(len(sCu) == 0,"","and dmd.dept_code IN ('"+sCu+"')")}
|
||||
${IF(sDeal='',"","AND t1.deal_code IN ('"+sDeal+"')")}
|
||||
|
||||
and trip_end_date <= date '${sEnd_date}'
|
||||
and trip_end_date >= date '${sStart_date}'
|
||||
and trip_end_date <= date '${sEnd_date}'
|
||||
GROUP BY t1.deal_code, t1.team_name, dmd.fist_dept_code, dmd.fist_dept_name, dmd.secd_dept_code, dmd.secd_dept_name, dmd.thrd_dept_code, dmd.thrd_dept_name, dmd.dept_code, dmd.dept_name
|
||||
|
||||
|
||||
|
@ -975,3 +975,987 @@ FROM (SELECT stat_date
|
||||
)t
|
||||
${IF(len(sStart_mon) > 0,"where to_char(t.stat_date,'yyyy-MM') <= '"+ FORMAT(sStart_mon,'yyyy-MM') +"'","")}
|
||||
ORDER BY to_char(t.stat_date,'MM')
|
||||
|
||||
-- ======================================
|
||||
-- 财务
|
||||
-- ======================================
|
||||
WITH amt_base AS
|
||||
(
|
||||
-- 映射日报科目对照关系
|
||||
SELECT
|
||||
stat_date -- 统计日期
|
||||
,plan_item_name
|
||||
,trade_direction
|
||||
,SUM(amt) AS amt -- 成品酒销售回款
|
||||
FROM dm.dm_fim_fud_indicator fp
|
||||
where fp.trade_direction IN('收入','支出')
|
||||
and fp.indi_type='执行'
|
||||
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 '2023-01-01'
|
||||
GROUP BY stat_date,plan_item_name,trade_direction
|
||||
UNION ALL
|
||||
select
|
||||
date(concat_ws(',',account_year,account_month,'1')) as stat_date
|
||||
,'其他收入(含未确认收入)' as plan_item_name
|
||||
,'收入' AS trade_direction
|
||||
,losses_amt AS amt
|
||||
from sdi_hzg.exchange_gains_losses
|
||||
where 1=1
|
||||
${IF(len(sCorp)=0," ","AND corp_code in ('"+sCorp+"')")}
|
||||
)
|
||||
|
||||
SELECT
|
||||
plan_item_name
|
||||
,trade_direction as fee_class
|
||||
,SUM(amt) / 10000 AS amt -- 本日
|
||||
FROM amt_base
|
||||
WHERE 1=1
|
||||
AND to_char(stat_date,'yyyy-MM-dd') = '${sEnd_date}'
|
||||
GROUP BY plan_item_name,trade_direction
|
||||
|
||||
|
||||
|
||||
|
||||
-- 期初余额
|
||||
|
||||
-- 年
|
||||
${IF(sPeriod_fin=1,"","/*")}
|
||||
|
||||
--本月期初
|
||||
with md as (
|
||||
select
|
||||
bank_account,
|
||||
max(report_date) as max_report_date
|
||||
from dwi.dwi_fim_bank_account_balance
|
||||
where report_date<date_trunc('year',date '${sEnd_date}')
|
||||
group by bank_account
|
||||
),xj as (
|
||||
select
|
||||
a.corp_code,
|
||||
a.bank_account,
|
||||
sum(a.current_balance) as current_balance,
|
||||
a.currency
|
||||
from dwi.dwi_fim_bank_account_balance a
|
||||
where exists (
|
||||
select 1 from md
|
||||
where a.bank_account=md.bank_account and a.report_date=md.max_report_date
|
||||
)
|
||||
and a.account_state='开户'
|
||||
group by a.corp_code, a.currency ,a.bank_account
|
||||
) , rto as ( -- 汇率表
|
||||
select decode(currency_name,'加拿大元','加元',currency_name) as currency_name,
|
||||
conversion_price_boc/100 as rate,
|
||||
date_trunc('day',exchange_publish_time) as rto_date,
|
||||
row_number() over (partition by currency_name,
|
||||
date_trunc('day',exchange_publish_time)
|
||||
order by exchange_publish_time desc) as ridx
|
||||
from sdi_xdata.boc_exchange_rate
|
||||
where date_trunc('day',exchange_publish_time)=date_trunc('year',date '${sEnd_date}')-1
|
||||
)
|
||||
select
|
||||
sum(current_balance*nvl(rto.rate,1))/10000 as free_amt -- 其中:可用存款
|
||||
,0 AS bank_amt -- 银行承兑汇票
|
||||
,0 AS hk_amt -- 香港公司账户资金
|
||||
,0 AS limit_amt -- 受限资金
|
||||
from xj re
|
||||
inner join dwr.dim_corp c on re.corp_code=c.corp_code and c.corp_group='股份'
|
||||
left join rto on re.currency=rto.currency_name and rto.ridx=1
|
||||
left join dwr.dim_bank_account dba on decode(length(re.bank_account), 17,
|
||||
substring(re.bank_account, 3),
|
||||
re.bank_account)=decode(length(dba.accountnumber), '17',
|
||||
substring(dba.accountnumber, 3),
|
||||
dba.accountnumber)
|
||||
and dba.account_owner_class='langjiu'
|
||||
where current_balance!=0
|
||||
${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")}
|
||||
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
|
||||
)
|
||||
)
|
||||
AND if((dba.category_name in ('专用户','保证金户') and re.bank_account!='22195901040000147' ) or re.bank_account='信用证保证金',1,0) = 0
|
||||
UNION ALL
|
||||
|
||||
select
|
||||
0 as free_amt -- 其中:可用存款
|
||||
,0 AS bank_amt -- 银行承兑汇票
|
||||
,0 AS hk_amt -- 香港公司账户资金
|
||||
,sum(current_balance*nvl(rto.rate,1))/10000 AS limit_amt -- 受限资金
|
||||
from xj re
|
||||
inner join dwr.dim_corp c on re.corp_code=c.corp_code and c.corp_group='股份'
|
||||
left join rto on re.currency=rto.currency_name and rto.ridx=1
|
||||
left join dwr.dim_bank_account dba on decode(length(re.bank_account), 17,
|
||||
substring(re.bank_account, 3),
|
||||
re.bank_account)=decode(length(dba.accountnumber), '17',
|
||||
substring(dba.accountnumber, 3),
|
||||
dba.accountnumber)
|
||||
and dba.account_owner_class='langjiu'
|
||||
where current_balance!=0
|
||||
${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")}
|
||||
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
|
||||
)
|
||||
)
|
||||
AND if((dba.category_name in ('专用户','保证金户') and re.bank_account!='22195901040000147' ) or re.bank_account='信用证保证金',1,0) = 1
|
||||
|
||||
|
||||
${IF(sPeriod_fin=1,"","*/")}
|
||||
-- 月
|
||||
|
||||
${IF(sPeriod_fin=2,"","/*")}
|
||||
--本月期初
|
||||
with md as (
|
||||
select
|
||||
bank_account,
|
||||
max(report_date) as max_report_date
|
||||
from dwi.dwi_fim_bank_account_balance
|
||||
where report_date<date_trunc('month',date '${sEnd_date}')
|
||||
group by bank_account
|
||||
),xj as (
|
||||
select
|
||||
a.corp_code,
|
||||
a.bank_account,
|
||||
sum(a.current_balance) as current_balance,
|
||||
a.currency
|
||||
from dwi.dwi_fim_bank_account_balance a
|
||||
where exists (
|
||||
select 1 from md
|
||||
where a.bank_account=md.bank_account and a.report_date=md.max_report_date
|
||||
)
|
||||
and a.account_state='开户'
|
||||
group by a.corp_code, a.currency ,a.bank_account
|
||||
) , rto as ( -- 汇率表
|
||||
select decode(currency_name,'加拿大元','加元',currency_name) as currency_name,
|
||||
conversion_price_boc/100 as rate,
|
||||
date_trunc('day',exchange_publish_time) as rto_date,
|
||||
row_number() over (partition by currency_name,
|
||||
date_trunc('day',exchange_publish_time)
|
||||
order by exchange_publish_time desc) as ridx
|
||||
from sdi_xdata.boc_exchange_rate
|
||||
where date_trunc('day',exchange_publish_time)=date_trunc('month', date '${sEnd_date}')-1
|
||||
)
|
||||
select
|
||||
0 as free_amt -- 其中:可用存款
|
||||
,0 AS bank_amt -- 银行承兑汇票
|
||||
,0 AS hk_amt -- 香港公司账户资金
|
||||
,sum(current_balance*nvl(rto.rate,1))/10000 AS limit_amt -- 受限资金
|
||||
from xj re
|
||||
inner join dwr.dim_corp c on re.corp_code=c.corp_code and c.corp_group='股份'
|
||||
left join rto on re.currency=rto.currency_name and rto.ridx=1
|
||||
left join dwr.dim_bank_account dba on decode(length(re.bank_account), 17,
|
||||
substring(re.bank_account, 3),
|
||||
re.bank_account)=decode(length(dba.accountnumber), '17',
|
||||
substring(dba.accountnumber, 3),
|
||||
dba.accountnumber)
|
||||
and dba.account_owner_class='langjiu'
|
||||
where current_balance!=0
|
||||
${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")}
|
||||
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
|
||||
)
|
||||
)
|
||||
AND if((dba.category_name in ('专用户','保证金户') and re.bank_account!='22195901040000147' ) or re.bank_account='信用证保证金',1,0) = 1
|
||||
UNION ALL
|
||||
select
|
||||
0 as free_amt -- 其中:可用存款
|
||||
,0 AS bank_amt -- 银行承兑汇票
|
||||
,sum(current_balance*nvl(rto.rate,1))/10000 AS hk_amt -- 香港公司账户资金
|
||||
,0 AS limit_amt -- 受限资金
|
||||
from xj re
|
||||
inner join dwr.dim_corp c on re.corp_code=c.corp_code and c.corp_group='股份'
|
||||
left join rto on re.currency=rto.currency_name and rto.ridx=1
|
||||
left join dwr.dim_bank_account dba on decode(length(re.bank_account), 17,
|
||||
substring(re.bank_account, 3),
|
||||
re.bank_account)=decode(length(dba.accountnumber), '17',
|
||||
substring(dba.accountnumber, 3),
|
||||
dba.accountnumber)
|
||||
and dba.account_owner_class='langjiu'
|
||||
where current_balance!=0
|
||||
${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")}
|
||||
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
|
||||
)
|
||||
)
|
||||
AND re.corp_code = '0223'
|
||||
UNION ALL
|
||||
SELECT
|
||||
0 as free_amt -- 其中:可用存款
|
||||
, sum(balance) / 10000 AS bank_amt -- 银行承兑汇票
|
||||
,0 AS hk_amt -- 香港公司账户资金
|
||||
,0 AS limit_amt -- 受限资金
|
||||
from dwr.ag_fim_fud_draft_balance a
|
||||
where stat_date=date_trunc('month',add_months(date'${sEnd_date}',-1))
|
||||
${IF(len(sCorp)=0," ","AND a.corp_code in ('"+sCorp+"')")}
|
||||
and exists(
|
||||
select 1 from dwr.dim_corp cp
|
||||
where a.corp_code=cp.corp_code
|
||||
and cp.corp_group='股份'
|
||||
)
|
||||
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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
||||
${IF(sPeriod_fin=2,"","*/")}
|
||||
|
||||
|
||||
|
||||
-- 日
|
||||
|
||||
${IF(sPeriod_fin=3,"","/*")}
|
||||
|
||||
with tpj as (
|
||||
select
|
||||
a.corp_code,
|
||||
'收入' as trade_direction,
|
||||
draftcode,
|
||||
a.owner_bank_account,
|
||||
sum(a.amt) as amt
|
||||
from sdi_oth.fim_draft_balance a
|
||||
group by a.corp_code,
|
||||
draftcode,
|
||||
owner_bank_account
|
||||
union all
|
||||
select
|
||||
a.corp_code,
|
||||
trade_direction,
|
||||
a.draftcode,
|
||||
a.owner_bank_account,
|
||||
amt
|
||||
from dwr.fact_fim_draft_flow a
|
||||
where a.trade_time>=date'2024-08-01'
|
||||
and a.trade_time<date'${FORMAT(sEnd_date,"yyyy-MM-dd")}'
|
||||
and nvl(a.draft_state,'x') not in ('未签收','背书中','登记中','已作废','承兑中','出票中','贴现中','质押中','收款中','被拒付','拒绝签收')
|
||||
) ,pj as ( -- 票据余额
|
||||
select
|
||||
a.corp_code,
|
||||
sum(decode(trade_direction,'支出',-1*amt,amt)) as balance
|
||||
from tpj a
|
||||
inner join dwr.dim_corp c on a.corp_code =c.corp_code and c.corp_group='股份'
|
||||
group by a.corp_code
|
||||
having sum(decode(trade_direction,'支出',-1*amt,amt))>0
|
||||
), md as (
|
||||
select
|
||||
bank_account,
|
||||
max(report_date) as max_report_date
|
||||
from dwi.dwi_fim_bank_account_balance
|
||||
where report_date<date'${FORMAT(sEnd_date,"yyyy-MM-dd")}'
|
||||
group by bank_account
|
||||
),re as ( -- 汇总票据和银行余额
|
||||
select
|
||||
a.corp_code,
|
||||
a.current_balance,
|
||||
a.currency,
|
||||
'现金' as amt_type,
|
||||
if((dba.category_name in ('专用户','保证金户') and a.bank_account!='22195901040000147' ) or a.bank_account='信用证保证金',1,0) as is_limit--受限资金金额
|
||||
from dwi.dwi_fim_bank_account_balance a
|
||||
inner join dwr.dim_corp c on a.corp_code=c.corp_code and c.corp_group='股份'
|
||||
left join dwr.dim_bank_account dba on decode(length(a.bank_account), 17,
|
||||
substring(a.bank_account, 3),
|
||||
a.bank_account)=decode(length(dba.accountnumber), '17',
|
||||
substring(dba.accountnumber, 3),
|
||||
dba.accountnumber)
|
||||
and dba.account_owner_class='langjiu'
|
||||
where exists (
|
||||
select 1 from md
|
||||
where a.bank_account=md.bank_account and a.report_date=md.max_report_date
|
||||
)
|
||||
and a.account_state='开户'
|
||||
union all
|
||||
select
|
||||
corp_code,
|
||||
sum(balance) as current_balance,
|
||||
'人民币' as currency,
|
||||
'票据' as amt_type,
|
||||
0 as is_limit
|
||||
from pj
|
||||
group by corp_code),
|
||||
rto as ( -- 汇率表
|
||||
select decode(currency_name,'加拿大元','加元',currency_name) as currency_name,
|
||||
conversion_price_boc/100 as rate,
|
||||
date_trunc('day',exchange_publish_time) as rto_date,
|
||||
row_number() over (partition by currency_name,
|
||||
date_trunc('day',exchange_publish_time)
|
||||
order by exchange_publish_time desc) as ridx
|
||||
from sdi_xdata.boc_exchange_rate
|
||||
where date_trunc('day',exchange_publish_time)=date'${FORMAT(sEnd_date,"yyyy-MM-dd")}'
|
||||
)
|
||||
select
|
||||
current_balance*nvl(rto.rate,1)/10000 as free_amt -- 其中:可用存款
|
||||
,0 AS bank_amt -- 银行承兑汇票
|
||||
,0 AS hk_amt -- 香港公司账户资金
|
||||
,0 AS limit_amt -- 受限资金
|
||||
from re
|
||||
left join rto on re.currency=rto.currency_name and rto.ridx=1
|
||||
where current_balance!=0
|
||||
${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")}
|
||||
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
|
||||
)
|
||||
)
|
||||
AND is_limit = 0
|
||||
AND amt_type = '现金'
|
||||
AND corp_code <> '0223'
|
||||
UNION ALL
|
||||
select
|
||||
0 as free_amt -- 其中:可用存款
|
||||
, current_balance*nvl(rto.rate,1)/10000 AS bank_amt -- 银行承兑汇票
|
||||
,0 AS hk_amt -- 香港公司账户资金
|
||||
,0 AS limit_amt -- 受限资金
|
||||
from re
|
||||
left join rto on re.currency=rto.currency_name and rto.ridx=1
|
||||
where current_balance!=0
|
||||
${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")}
|
||||
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
|
||||
)
|
||||
)
|
||||
AND amt_type = '票据'
|
||||
UNION ALL
|
||||
select
|
||||
0 as free_amt -- 其中:可用存款
|
||||
,0 AS bank_amt -- 银行承兑汇票
|
||||
,0 AS hk_amt -- 香港公司账户资金
|
||||
,current_balance*nvl(rto.rate,1)/10000 AS limit_amt -- 受限资金
|
||||
from re
|
||||
left join rto on re.currency=rto.currency_name and rto.ridx=1
|
||||
where current_balance!=0
|
||||
${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")}
|
||||
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
|
||||
)
|
||||
)
|
||||
AND is_limit = 1
|
||||
AND amt_type = '现金'
|
||||
UNION ALL
|
||||
select
|
||||
0 as free_amt -- 其中:可用存款
|
||||
,0 AS bank_amt -- 银行承兑汇票
|
||||
,current_balance*nvl(rto.rate,1)/10000 AS hk_amt -- 香港公司账户资金
|
||||
,0 AS limit_amt -- 受限资金
|
||||
from re
|
||||
left join rto on re.currency=rto.currency_name and rto.ridx=1
|
||||
where current_balance!=0
|
||||
${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")}
|
||||
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
|
||||
)
|
||||
)
|
||||
AND is_limit = 0
|
||||
AND amt_type = '现金'
|
||||
AND corp_code = '0223'
|
||||
|
||||
|
||||
${IF(sPeriod_fin=3,"","*/")}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- 期末
|
||||
-- 年
|
||||
${IF(sPeriod_fin=1,"","/*")}
|
||||
|
||||
with tpj as (
|
||||
select
|
||||
a.corp_code,
|
||||
'收入' as trade_direction,
|
||||
draftcode,
|
||||
a.owner_bank_account,
|
||||
sum(a.amt) as amt
|
||||
from sdi_oth.fim_draft_balance a
|
||||
group by a.corp_code,
|
||||
draftcode,
|
||||
owner_bank_account
|
||||
union all
|
||||
select
|
||||
a.corp_code,
|
||||
trade_direction,
|
||||
a.draftcode,
|
||||
a.owner_bank_account,
|
||||
amt
|
||||
from dwr.fact_fim_draft_flow a
|
||||
where a.trade_time>=date'2024-08-01'
|
||||
and a.trade_time< date'${sEnd_date}' + interval '1 day'
|
||||
and nvl(a.draft_state,'x') not in ('未签收','背书中','登记中','已作废','承兑中','出票中','贴现中','质押中','收款中','被拒付','拒绝签收')
|
||||
) ,pj as ( -- 票据余额
|
||||
select
|
||||
a.corp_code,
|
||||
sum(decode(trade_direction,'支出',-1*amt,amt)) as balance
|
||||
from tpj a
|
||||
inner join dwr.dim_corp c on a.corp_code =c.corp_code and c.corp_group='股份'
|
||||
group by a.corp_code
|
||||
having sum(decode(trade_direction,'支出',-1*amt,amt))>0
|
||||
), md as (
|
||||
select
|
||||
bank_account,
|
||||
max(report_date) as max_report_date
|
||||
from dwi.dwi_fim_bank_account_balance
|
||||
where report_date< date'${sEnd_date}' + interval '1 day'
|
||||
group by bank_account
|
||||
),xj as (
|
||||
select
|
||||
a.corp_code,
|
||||
a.bank_account,
|
||||
sum(a.current_balance) as amt,
|
||||
a.currency
|
||||
from dwi.dwi_fim_bank_account_balance a
|
||||
where exists (
|
||||
select 1 from md
|
||||
where a.bank_account=md.bank_account and a.report_date=md.max_report_date
|
||||
)
|
||||
and a.account_state='开户'
|
||||
group by a.corp_code, a.currency ,a.bank_account
|
||||
union all
|
||||
select corp_code,
|
||||
owner_bank_account as bank_account,
|
||||
sum(decode(trade_direction,'收入',amt,-1*amt)) as amt,
|
||||
'人民币' as currency
|
||||
from dm.dm_fim_fud_indicator
|
||||
where amt_type='现金'
|
||||
and stat_date=date'${sEnd_date}'
|
||||
group by corp_code,owner_bank_account
|
||||
) ,re as ( -- 汇总票据和银行余额
|
||||
select
|
||||
a.corp_code,
|
||||
sum(a.amt) as current_balance,
|
||||
a.currency,
|
||||
'现金' as amt_type,
|
||||
if((dba.category_name in ('专用户','保证金户') and a.bank_account!='22195901040000147' ) or a.bank_account='信用证保证金',1,0) as is_limit--受限资金金额
|
||||
from xj a
|
||||
inner join dwr.dim_corp c on a.corp_code=c.corp_code and c.corp_group='股份'
|
||||
left join dwr.dim_bank_account dba on decode(length(a.bank_account), 17,
|
||||
substring(a.bank_account, 3),
|
||||
a.bank_account)=decode(length(dba.accountnumber), '17',
|
||||
substring(dba.accountnumber, 3),
|
||||
dba.accountnumber)
|
||||
and dba.account_owner_class='langjiu'
|
||||
group by a.corp_code,
|
||||
a.currency,
|
||||
if((dba.category_name in ('专用户','保证金户') and a.bank_account!='22195901040000147' ) or a.bank_account='信用证保证金',1,0)
|
||||
union all
|
||||
select
|
||||
corp_code,
|
||||
sum(balance) as current_balance,
|
||||
'人民币' as currency,
|
||||
'票据' as amt_type,
|
||||
0 as is_limit
|
||||
from pj
|
||||
group by corp_code),
|
||||
rto as ( -- 汇率表
|
||||
select decode(currency_name,'加拿大元','加元',currency_name) as currency_name,
|
||||
conversion_price_boc/100 as rate,
|
||||
date_trunc('day',exchange_publish_time) as rto_date,
|
||||
row_number() over (partition by currency_name,
|
||||
date_trunc('day',exchange_publish_time)
|
||||
order by exchange_publish_time desc) as ridx
|
||||
from sdi_xdata.boc_exchange_rate
|
||||
where date_trunc('day',exchange_publish_time)=date'${sEnd_date}'
|
||||
)
|
||||
SELECT 0 AS free_amt -- 其中:可用存款
|
||||
, 0 AS bank_amt -- 银行承兑汇票
|
||||
, current_balance*nvl(rto.rate,1)/10000 AS hk_amt -- 香港公司账户资金
|
||||
, 0 AS limit_amt -- 受限资金
|
||||
from re
|
||||
left join rto on re.currency=rto.currency_name and rto.ridx=1
|
||||
where current_balance!=0
|
||||
${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")}
|
||||
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
|
||||
)
|
||||
)
|
||||
AND corp_code = '0223'
|
||||
AND amt_type = '现金'
|
||||
UNION ALL
|
||||
SELECT 0 AS free_amt -- 其中:可用存款
|
||||
, 0 AS bank_amt -- 银行承兑汇票
|
||||
, 0 AS hk_amt -- 香港公司账户资金
|
||||
, current_balance*nvl(rto.rate,1)/10000 AS limit_amt -- 受限资金
|
||||
from re
|
||||
left join rto on re.currency=rto.currency_name and rto.ridx=1
|
||||
where current_balance!=0
|
||||
${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")}
|
||||
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
|
||||
)
|
||||
)
|
||||
AND is_limit = 1
|
||||
AND amt_type = '现金'
|
||||
UNION ALL
|
||||
SELECT
|
||||
0 AS free_amt -- 其中:可用存款
|
||||
, sum(balance)/10000 AS bank_amt -- 银行承兑汇票
|
||||
, 0 AS hk_amt -- 香港公司账户资金
|
||||
, 0 AS limit_amt -- 受限资金
|
||||
from dwr.ag_fim_fud_draft_balance a
|
||||
where stat_date=date_trunc('month',date '${sEnd_date}')
|
||||
${IF(len(sCorp)=0," ","AND a.corp_code in ('"+sCorp+"')")}
|
||||
and exists(
|
||||
select 1 from dwr.dim_corp cp
|
||||
where a.corp_code=cp.corp_code
|
||||
and cp.corp_group='股份'
|
||||
)
|
||||
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
|
||||
)
|
||||
)
|
||||
|
||||
${IF(sPeriod_fin=1,"","*/")}
|
||||
|
||||
-- 月
|
||||
${IF(sPeriod_fin=2,"","/*")}
|
||||
|
||||
with tpj as (
|
||||
select
|
||||
a.corp_code,
|
||||
'收入' as trade_direction,
|
||||
draftcode,
|
||||
a.owner_bank_account,
|
||||
sum(a.amt) as amt
|
||||
from sdi_oth.fim_draft_balance a
|
||||
group by a.corp_code,
|
||||
draftcode,
|
||||
owner_bank_account
|
||||
union all
|
||||
select
|
||||
a.corp_code,
|
||||
trade_direction,
|
||||
a.draftcode,
|
||||
a.owner_bank_account,
|
||||
amt
|
||||
from dwr.fact_fim_draft_flow a
|
||||
where a.trade_time>=date'2024-08-01'
|
||||
and a.trade_time< date'${sEnd_date}' + interval '1 day'
|
||||
and nvl(a.draft_state,'x') not in ('未签收','背书中','登记中','已作废','承兑中','出票中','贴现中','质押中','收款中','被拒付','拒绝签收')
|
||||
) ,pj as ( -- 票据余额
|
||||
select
|
||||
a.corp_code,
|
||||
sum(decode(trade_direction,'支出',-1*amt,amt)) as balance
|
||||
from tpj a
|
||||
inner join dwr.dim_corp c on a.corp_code =c.corp_code and c.corp_group='股份'
|
||||
group by a.corp_code
|
||||
having sum(decode(trade_direction,'支出',-1*amt,amt))>0
|
||||
), md as (
|
||||
select
|
||||
bank_account,
|
||||
max(report_date) as max_report_date
|
||||
from dwi.dwi_fim_bank_account_balance
|
||||
where report_date< date'${sEnd_date}' + interval '1 day'
|
||||
group by bank_account
|
||||
),xj as (
|
||||
select
|
||||
a.corp_code,
|
||||
a.bank_account,
|
||||
sum(a.current_balance) as amt,
|
||||
a.currency
|
||||
from dwi.dwi_fim_bank_account_balance a
|
||||
where exists (
|
||||
select 1 from md
|
||||
where a.bank_account=md.bank_account and a.report_date=md.max_report_date
|
||||
)
|
||||
and a.account_state='开户'
|
||||
group by a.corp_code, a.currency ,a.bank_account
|
||||
union all
|
||||
select corp_code,
|
||||
owner_bank_account as bank_account,
|
||||
sum(decode(trade_direction,'收入',amt,-1*amt)) as amt,
|
||||
'人民币' as currency
|
||||
from dm.dm_fim_fud_indicator
|
||||
where amt_type='现金'
|
||||
and stat_date=date'${sEnd_date}'
|
||||
group by corp_code,owner_bank_account
|
||||
) ,re as ( -- 汇总票据和银行余额
|
||||
select
|
||||
a.corp_code,
|
||||
sum(a.amt) as current_balance,
|
||||
a.currency,
|
||||
'现金' as amt_type,
|
||||
if((dba.category_name in ('专用户','保证金户') and a.bank_account!='22195901040000147' ) or a.bank_account='信用证保证金',1,0) as is_limit--受限资金金额
|
||||
from xj a
|
||||
inner join dwr.dim_corp c on a.corp_code=c.corp_code and c.corp_group='股份'
|
||||
left join dwr.dim_bank_account dba on decode(length(a.bank_account), 17,
|
||||
substring(a.bank_account, 3),
|
||||
a.bank_account)=decode(length(dba.accountnumber), '17',
|
||||
substring(dba.accountnumber, 3),
|
||||
dba.accountnumber)
|
||||
and dba.account_owner_class='langjiu'
|
||||
group by a.corp_code,
|
||||
a.currency,
|
||||
if((dba.category_name in ('专用户','保证金户') and a.bank_account!='22195901040000147' ) or a.bank_account='信用证保证金',1,0)
|
||||
union all
|
||||
select
|
||||
corp_code,
|
||||
sum(balance) as current_balance,
|
||||
'人民币' as currency,
|
||||
'票据' as amt_type,
|
||||
0 as is_limit
|
||||
from pj
|
||||
group by corp_code),
|
||||
rto as ( -- 汇率表
|
||||
select decode(currency_name,'加拿大元','加元',currency_name) as currency_name,
|
||||
conversion_price_boc/100 as rate,
|
||||
date_trunc('day',exchange_publish_time) as rto_date,
|
||||
row_number() over (partition by currency_name,
|
||||
date_trunc('day',exchange_publish_time)
|
||||
order by exchange_publish_time desc) as ridx
|
||||
from sdi_xdata.boc_exchange_rate
|
||||
where date_trunc('day',exchange_publish_time)=date'${sEnd_date}'
|
||||
)
|
||||
SELECT 0 AS free_amt -- 其中:可用存款
|
||||
, 0 AS bank_amt -- 银行承兑汇票
|
||||
, current_balance*nvl(rto.rate,1)/10000 AS hk_amt -- 香港公司账户资金
|
||||
, 0 AS limit_amt -- 受限资金
|
||||
from re
|
||||
left join rto on re.currency=rto.currency_name and rto.ridx=1
|
||||
where current_balance!=0
|
||||
${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")}
|
||||
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
|
||||
)
|
||||
)
|
||||
AND corp_code = '0223'
|
||||
AND amt_type = '现金'
|
||||
UNION ALL
|
||||
SELECT 0 AS free_amt -- 其中:可用存款
|
||||
, 0 AS bank_amt -- 银行承兑汇票
|
||||
, 0 AS hk_amt -- 香港公司账户资金
|
||||
, current_balance*nvl(rto.rate,1)/10000 AS limit_amt -- 受限资金
|
||||
from re
|
||||
left join rto on re.currency=rto.currency_name and rto.ridx=1
|
||||
where current_balance!=0
|
||||
${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")}
|
||||
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
|
||||
)
|
||||
)
|
||||
AND is_limit = 1
|
||||
AND amt_type = '现金'
|
||||
UNION ALL
|
||||
SELECT
|
||||
0 AS free_amt -- 其中:可用存款
|
||||
, sum(balance)/10000 AS bank_amt -- 银行承兑汇票
|
||||
, 0 AS hk_amt -- 香港公司账户资金
|
||||
, 0 AS limit_amt -- 受限资金
|
||||
from dwr.ag_fim_fud_draft_balance a
|
||||
where stat_date=date_trunc('month',date '${sEnd_date}')
|
||||
and exists(
|
||||
select 1 from dwr.dim_corp cp
|
||||
where a.corp_code=cp.corp_code
|
||||
and cp.corp_group='股份'
|
||||
)
|
||||
${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}'
|
||||
and per_model IN ('all','fim')
|
||||
and (
|
||||
is_all = 1
|
||||
)
|
||||
)
|
||||
${IF(sPeriod_fin=2,"","*/")}
|
||||
|
||||
|
||||
-- 日
|
||||
${IF(sPeriod_fin=3,"","/*")}
|
||||
|
||||
with tpj as (
|
||||
select
|
||||
a.corp_code,
|
||||
'收入' as trade_direction,
|
||||
draftcode,
|
||||
a.owner_bank_account,
|
||||
sum(a.amt) as amt
|
||||
from sdi_oth.fim_draft_balance a
|
||||
group by a.corp_code,
|
||||
draftcode,
|
||||
owner_bank_account
|
||||
union all
|
||||
select
|
||||
a.corp_code,
|
||||
trade_direction,
|
||||
a.draftcode,
|
||||
a.owner_bank_account,
|
||||
amt
|
||||
from dwr.fact_fim_draft_flow a
|
||||
where a.trade_time>=date'2024-08-01'
|
||||
and a.trade_time< date'${sEnd_date}' + interval '1 day'
|
||||
and nvl(a.draft_state,'x') not in ('未签收','背书中','登记中','已作废','承兑中','出票中','贴现中','质押中','收款中','被拒付','拒绝签收')
|
||||
) ,pj as ( -- 票据余额
|
||||
select
|
||||
a.corp_code,
|
||||
sum(decode(trade_direction,'支出',-1*amt,amt)) as balance
|
||||
from tpj a
|
||||
inner join dwr.dim_corp c on a.corp_code =c.corp_code and c.corp_group='股份'
|
||||
group by a.corp_code
|
||||
having sum(decode(trade_direction,'支出',-1*amt,amt))>0
|
||||
), md as (
|
||||
select
|
||||
bank_account,
|
||||
max(report_date) as max_report_date
|
||||
from dwi.dwi_fim_bank_account_balance
|
||||
where report_date< date'${sEnd_date}' + interval '1 day'
|
||||
group by bank_account
|
||||
),xj as (
|
||||
select
|
||||
a.corp_code,
|
||||
a.bank_account,
|
||||
sum(a.current_balance) as amt,
|
||||
a.currency
|
||||
from dwi.dwi_fim_bank_account_balance a
|
||||
where exists (
|
||||
select 1 from md
|
||||
where a.bank_account=md.bank_account and a.report_date=md.max_report_date
|
||||
)
|
||||
and a.account_state='开户'
|
||||
group by a.corp_code, a.currency ,a.bank_account
|
||||
union all
|
||||
select corp_code,
|
||||
owner_bank_account as bank_account,
|
||||
sum(decode(trade_direction,'收入',amt,-1*amt)) as amt,
|
||||
'人民币' as currency
|
||||
from dm.dm_fim_fud_indicator
|
||||
where amt_type='现金'
|
||||
and stat_date=date'${sEnd_date}'
|
||||
group by corp_code,owner_bank_account
|
||||
) ,re as ( -- 汇总票据和银行余额
|
||||
select
|
||||
a.corp_code,
|
||||
sum(a.amt) as current_balance,
|
||||
a.currency,
|
||||
'现金' as amt_type,
|
||||
if((dba.category_name in ('专用户','保证金户') and a.bank_account!='22195901040000147' ) or a.bank_account='信用证保证金',1,0) as is_limit--受限资金金额
|
||||
from xj a
|
||||
inner join dwr.dim_corp c on a.corp_code=c.corp_code and c.corp_group='股份'
|
||||
left join dwr.dim_bank_account dba on decode(length(a.bank_account), 17,
|
||||
substring(a.bank_account, 3),
|
||||
a.bank_account)=decode(length(dba.accountnumber), '17',
|
||||
substring(dba.accountnumber, 3),
|
||||
dba.accountnumber)
|
||||
and dba.account_owner_class='langjiu'
|
||||
group by a.corp_code,
|
||||
a.currency,
|
||||
if((dba.category_name in ('专用户','保证金户') and a.bank_account!='22195901040000147' ) or a.bank_account='信用证保证金',1,0)
|
||||
union all
|
||||
select
|
||||
corp_code,
|
||||
sum(balance) as current_balance,
|
||||
'人民币' as currency,
|
||||
'票据' as amt_type,
|
||||
0 as is_limit
|
||||
from pj
|
||||
group by corp_code),
|
||||
rto as ( -- 汇率表
|
||||
select decode(currency_name,'加拿大元','加元',currency_name) as currency_name,
|
||||
conversion_price_boc/100 as rate,
|
||||
date_trunc('day',exchange_publish_time) as rto_date,
|
||||
row_number() over (partition by currency_name,
|
||||
date_trunc('day',exchange_publish_time)
|
||||
order by exchange_publish_time desc) as ridx
|
||||
from sdi_xdata.boc_exchange_rate
|
||||
where date_trunc('day',exchange_publish_time)=date'${sEnd_date}'
|
||||
)
|
||||
SELECT 0 AS free_amt -- 其中:可用存款
|
||||
, 0 AS bank_amt -- 银行承兑汇票
|
||||
, current_balance*nvl(rto.rate,1)/10000 AS hk_amt -- 香港公司账户资金
|
||||
, 0 AS limit_amt -- 受限资金
|
||||
from re
|
||||
left join rto on re.currency=rto.currency_name and rto.ridx=1
|
||||
where current_balance!=0
|
||||
${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")}
|
||||
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
|
||||
)
|
||||
)
|
||||
AND corp_code = '0223'
|
||||
AND amt_type = '现金'
|
||||
UNION ALL
|
||||
SELECT 0 AS free_amt -- 其中:可用存款
|
||||
, 0 AS bank_amt -- 银行承兑汇票
|
||||
, 0 AS hk_amt -- 香港公司账户资金
|
||||
, current_balance*nvl(rto.rate,1)/10000 AS limit_amt -- 受限资金
|
||||
from re
|
||||
left join rto on re.currency=rto.currency_name and rto.ridx=1
|
||||
where current_balance!=0
|
||||
${IF(len(sCorp)=0," ","AND re.corp_code in ('"+sCorp+"')")}
|
||||
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
|
||||
)
|
||||
)
|
||||
AND is_limit = 1
|
||||
AND amt_type = '现金'
|
||||
UNION ALL
|
||||
SELECT
|
||||
0 AS free_amt -- 其中:可用存款
|
||||
, sum(balance)/10000 AS bank_amt -- 银行承兑汇票
|
||||
, 0 AS hk_amt -- 香港公司账户资金
|
||||
, 0 AS limit_amt -- 受限资金
|
||||
from dwr.ag_fim_fud_draft_balance a
|
||||
where stat_date=date_trunc('month',date '${sEnd_date}')
|
||||
and exists(
|
||||
select 1 from dwr.dim_corp cp
|
||||
where a.corp_code=cp.corp_code
|
||||
and cp.corp_group='股份'
|
||||
)
|
||||
${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}'
|
||||
and per_model IN ('all','fim')
|
||||
and (
|
||||
is_all = 1
|
||||
)
|
||||
)
|
||||
${IF(sPeriod_fin=3,"","*/")}
|
Loading…
Reference in New Issue
Block a user