langjiu-project/FineReport/财务主题/报表/税金/2_税金汇总表.sql

151 lines
6.6 KiB
MySQL
Raw Normal View History

2024-10-17 16:07:01 +08:00
WITH corp AS (
SELECT
corp_code,
corp_name
FROM
2024-11-20 19:08:29 +08:00
"dwr"."dim_corp" a
2024-10-17 16:07:01 +08:00
WHERE
corp_type = '实体'
AND (parent_corp_code LIKE '02%' OR corp_code = '0301')
2024-11-20 19:08:29 +08:00
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 = a.corp_code
)
)
${IF(LEN(sCorp )!=0," AND corp_code IN ('"+ sCorp +"')", "")}
2024-10-17 16:07:01 +08:00
),
base_info AS (
SELECT
LEFT(t1.subject_code,6) AS subject_code,
SUM(t1.begin_debit_blc) AS "期初借方余额",
SUM(t1.begin_credit_blc) AS "期初贷方余额",
SUM(t1.credit_amt) AS "贷方发生额",
SUM(t1.debit_amt) AS "借方发生额",
SUM(t1.begin_credit_blc) - SUM(t1.begin_debit_blc) AS "期初贷正借负"
FROM
"dwr"."fact_fim_subject_balance" t1
JOIN corp t2 ON t1.corp_code = t2.corp_code
WHERE t1.acnt_year = '${left(sStart_mon,4)}'
AND t1.acnt_mon <= '${right(sEnd_mon,2)}'
AND t1.acnt_mon >= '${right(sStart_mon,2)}'
2024-10-17 16:07:01 +08:00
AND t1.subject_code LIKE '2221%'
GROUP BY
LEFT(subject_code,6)
),
subject_result AS (
SELECT
t1.subject_code AS "科目编号",
ABS(SUM(t1."期初贷正借负")) AS "期初余额",
ABS(SUM(t1."贷方发生额")) AS "本期应交"
FROM
base_info t1
WHERE
t1.subject_code IN ('222102','222105','222104','222113','222114','222106','222107','222110','222108','222109','222112','222118','222125','222121')
GROUP BY
t1.subject_code
UNION ALL
SELECT
'其他税' AS "科目编号",
ABS(SUM(t1."期初贷正借负") - (SUM(IF(t1.subject_code IN ('222101','222102','222104','222105','222106','222107','222108','222109','222110','222112','222113','222114','222116','222121','222123','222125'),t1."期初贷正借负",0)))) AS "期初余额",
ABS(SUM(t1."贷方发生额") - SUM(IF(t1.subject_code IN ('222101','222102','222104','222105','222106','222107','222108','222109','222110','222112','222113','222114','222116','222121','222123','222125'),t1."贷方发生额",0))) AS "本期应交"
FROM
base_info t1
UNION ALL
SELECT
'增值税' AS "科目编号",
ABS(SUM(IF(LEFT(t1.subject_code,6) IN ('222101','222116','222123'),t1.begin_credit_blc,0)) - SUM(IF(LEFT(t1.subject_code,6) IN ('222101','222116','222123'),t1.begin_debit_blc,0))) AS "期初余额",
ABS(SUM(IF(LEFT(t1.subject_code,8) IN ('22210105','22210116','22210117'),t1.credit_amt,0)) + SUM(IF(LEFT(t1.subject_code,6) IN ('222123'),t1.credit_amt,0)) - SUM(IF(LEFT(t1.subject_code,8) IN ('22210101','22210104','22210108','22210110','22210112','22210118'),t1.debit_amt,0))) AS "本期应交"
FROM
"dwr"."fact_fim_subject_balance" t1
JOIN corp t2 ON t1.corp_code = t2.corp_code
WHERE t1.acnt_year = '${left(sStart_mon,4)}'
AND t1.acnt_mon <= '${right(sEnd_mon,2)}'
AND t1.acnt_mon >= '${right(sStart_mon,2)}'
2024-10-17 16:07:01 +08:00
AND t1.subject_code LIKE '2221%'
)
SELECT
fin0."税种",
IFNULL(fin1."期初余额",0) / 10000 AS "期初余额",
IFNULL(fin1."本期应交",0) / 10000 AS "本期应交",
IFNULL(fin3.,0) / 10000 AS "实际入库",
IFNULL(fin3.退,0) / 10000 AS "退税金额"
FROM
( SELECT 1 AS seq, '增值税' AS "科目编号",'增值税' AS "税种"
UNION ALL
SELECT 2 AS seq, '222102' AS "科目编号",'消费税' AS "税种"
UNION ALL
SELECT 3 AS seq, '222105' AS "科目编号",'企业所得税' AS "税种"
UNION ALL
SELECT 4 AS seq, '222104' AS "科目编号",'城市维护建设税' AS "税种"
UNION ALL
SELECT 5 AS seq, '222113' AS "科目编号",'教育费附加' AS "税种"
UNION ALL
SELECT 6 AS seq, '222114' AS "科目编号",'地方教育费附加' AS "税种"
UNION ALL
SELECT 7 AS seq, '222106' AS "科目编号",'个人所得税' AS "税种"
UNION ALL
SELECT 8 AS seq, '222107' AS "科目编号",'房产税' AS "税种"
UNION ALL
SELECT 9 AS seq, '222110' AS "科目编号",'土地使用税' AS "税种"
UNION ALL
SELECT 10 AS seq, '222108' AS "科目编号",'车船税' AS "税种"
UNION ALL
SELECT 11 AS seq, '222109' AS "科目编号",'印花税' AS "税种"
UNION ALL
SELECT 12 AS seq, '222112' AS "科目编号",'资源税' AS "税种"
UNION ALL
SELECT 13 AS seq, '222118' AS "科目编号",'契税' AS "税种"
UNION ALL
SELECT 14 AS seq, '222125' AS "科目编号",'环境保护费' AS "税种"
UNION ALL
SELECT 15 AS seq, '222121' AS "科目编号",'文化事业建设费' AS "税种"
UNION ALL
SELECT 16 AS seq, '其他税' AS "科目编号",'其他税' AS "税种"
) fin0
LEFT JOIN subject_result fin1 ON fin0."科目编号" = fin1."科目编号"
LEFT JOIN
(
select
tax_name AS "税种" -- 税种
,SUM(actual_amt) AS "实际入库"
,SUM(refund_amt) AS "退税金额"
from dwi.dwi_fim_tax_payed t1
JOIN corp t2 ON t1.corp_code = t2.corp_code
2024-11-20 19:08:29 +08:00
WHERE bill_status='已匹配'
2024-11-24 15:21:04 +08:00
AND tax_name <> '企业所得税'
2024-11-20 19:08:29 +08:00
AND stat_date <= '${CONCATENATE(sEnd_mon,"-01 00:00:00")}'
AND stat_date >= '${CONCATENATE(sStart_mon,"-01 00:00:00")}'
GROUP By tax_name
2024-11-24 15:21:04 +08:00
-- 增加企业所得特殊处理规则
UNION ALL
select
'企业所得税' AS "税种" -- 税种
,SUM(actual_amt) AS "实际入库"
,SUM(refund_amt) AS "退税金额"
from dwi.dwi_fim_tax_payed t1
JOIN corp t2 ON t1.corp_code = t2.corp_code
WHERE bill_status='已匹配'
AND tax_name like '企业所得税%'
AND stat_date <= '${CONCATENATE(sEnd_mon,"-01 00:00:00")}'
AND stat_date >= '${CONCATENATE(sStart_mon,"-01 00:00:00")}'
)fin3
on fin0. = fin3.
ORDER BY
2024-11-20 19:08:29 +08:00
fin0.seq