2024-10-17 11:20:53 +08:00
|
|
|
WITH corp AS (
|
|
|
|
SELECT
|
|
|
|
corp_code -- 公司编码
|
|
|
|
,corp_name -- 公司名称
|
2024-11-20 19:08:29 +08:00
|
|
|
FROM dwr.dim_corp a
|
2024-10-17 11:20:53 +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
|
|
|
|
)
|
|
|
|
)
|
2024-11-16 23:40:25 +08:00
|
|
|
${IF(LEN(sCorp)!=0," AND corp_code IN ('"+ sCorp +"')", "")}
|
2024-10-17 11:20:53 +08:00
|
|
|
),
|
|
|
|
base_info_curr AS (
|
|
|
|
SELECT
|
|
|
|
A.subject_code AS subject_code -- 科目编码
|
|
|
|
,SUM(A.debit_amt) AS debit_amt_y -- 借方金额_当年累计
|
2024-11-16 23:40:25 +08:00
|
|
|
,SUM(IF(A.acnt_mon = '${FORMAT(sStart_mon,"MM")}',A.debit_amt,0)) AS debit_amt_m -- 借方金额_当月累计
|
2024-10-17 11:20:53 +08:00
|
|
|
FROM dwr.fact_fim_subject_balance A-- 科目余额
|
|
|
|
JOIN corp B ON A.corp_code = B.corp_code
|
|
|
|
WHERE A.subject_code like '6604%'
|
2024-11-16 23:40:25 +08:00
|
|
|
AND A.acnt_year = '${YEAR(sStart_mon)}'
|
|
|
|
AND A.acnt_mon <= '${FORMAT(sStart_mon,"MM")}'
|
2024-10-17 11:20:53 +08:00
|
|
|
GROUP BY A.subject_code
|
|
|
|
),
|
|
|
|
base_info_last AS (
|
|
|
|
SELECT
|
|
|
|
A.subject_code AS subject_code -- 科目编码
|
|
|
|
,SUM(A.debit_amt) AS debit_amt_y -- 借方金额_当年累计
|
2024-11-16 23:40:25 +08:00
|
|
|
,SUM(IF(A.acnt_mon = '${FORMAT(sStart_mon,"MM")}',A.debit_amt,0)) AS debit_amt_m -- 借方金额_当月累计
|
2024-10-17 11:20:53 +08:00
|
|
|
FROM dwr.fact_fim_subject_balance A-- 科目余额
|
|
|
|
JOIN corp B ON A.corp_code = B.corp_code
|
|
|
|
WHERE A.subject_code like '6604%'
|
2024-11-16 23:40:25 +08:00
|
|
|
AND A.acnt_year = '${YEAR(sStart_mon) - 1}'
|
|
|
|
AND A.acnt_mon <= '${FORMAT(sStart_mon,"MM")}'
|
2024-10-17 11:20:53 +08:00
|
|
|
GROUP BY A.subject_code
|
|
|
|
),
|
|
|
|
subject_result AS (
|
|
|
|
-- 本期统计
|
|
|
|
SELECT
|
|
|
|
'材料费' AS subject_name -- 科目名称
|
2024-11-20 19:08:29 +08:00
|
|
|
,'660401' AS subject_code -- 科目编码
|
2024-10-17 11:20:53 +08:00
|
|
|
,SUM(debit_amt_m) AS debit_amt_m -- 借方金额_当月累计
|
|
|
|
,SUM(debit_amt_y) AS debit_amt_y -- 借方金额_当年累计
|
|
|
|
,0 AS debit_amt_last_m -- 借方金额_上年同期
|
|
|
|
,0 AS debit_amt_last_y -- 借方金额_上年累计
|
|
|
|
FROM base_info_curr
|
|
|
|
WHERE subject_code like '660401%'
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
|
|
'职工薪酬' AS subject_name -- 科目名称
|
2024-11-20 19:08:29 +08:00
|
|
|
,'660403' AS subject_code -- 科目编码
|
2024-10-17 11:20:53 +08:00
|
|
|
,SUM(debit_amt_m) AS debit_amt_m -- 借方金额_当月累计
|
|
|
|
,SUM(debit_amt_y) AS debit_amt_y -- 借方金额_当年累计
|
|
|
|
,0 AS debit_amt_last_m -- 借方金额_上年同期
|
|
|
|
,0 AS debit_amt_last_y -- 借方金额_上年累计
|
|
|
|
FROM base_info_curr
|
|
|
|
WHERE subject_code like '660403%'
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
|
|
'差旅费' AS subject_name -- 科目名称
|
2024-11-20 19:08:29 +08:00
|
|
|
,'660409' AS subject_code -- 科目编码
|
2024-10-17 11:20:53 +08:00
|
|
|
,SUM(debit_amt_m) AS debit_amt_m -- 借方金额_当月累计
|
|
|
|
,SUM(debit_amt_y) AS debit_amt_y -- 借方金额_当年累计
|
|
|
|
,0 AS debit_amt_last_m -- 借方金额_上年同期
|
|
|
|
,0 AS debit_amt_last_y -- 借方金额_上年累计
|
|
|
|
FROM base_info_curr
|
|
|
|
WHERE subject_code like '660409%'
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
|
|
'加工费' AS subject_name -- 科目名称
|
2024-11-20 19:08:29 +08:00
|
|
|
,'660408' AS subject_code -- 科目编码
|
2024-10-17 11:20:53 +08:00
|
|
|
,SUM(debit_amt_m) AS debit_amt_m -- 借方金额_当月累计
|
|
|
|
,SUM(debit_amt_y) AS debit_amt_y -- 借方金额_当年累计
|
|
|
|
,0 AS debit_amt_last_m -- 借方金额_上年同期
|
|
|
|
,0 AS debit_amt_last_y -- 借方金额_上年累计
|
|
|
|
FROM base_info_curr
|
|
|
|
WHERE subject_code like '660408%'
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
|
|
'技术服务费' AS subject_name -- 科目名称
|
2024-11-20 19:08:29 +08:00
|
|
|
,'660402' AS subject_code -- 科目编码
|
2024-10-17 11:20:53 +08:00
|
|
|
,SUM(debit_amt_m) AS debit_amt_m -- 借方金额_当月累计
|
|
|
|
,SUM(debit_amt_y) AS debit_amt_y -- 借方金额_当年累计
|
|
|
|
,0 AS debit_amt_last_m -- 借方金额_上年同期
|
|
|
|
,0 AS debit_amt_last_y -- 借方金额_上年累计
|
|
|
|
FROM base_info_curr
|
|
|
|
WHERE subject_code like '660402%'
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
|
|
'其他' AS subject_name -- 科目名称
|
2024-11-20 19:08:29 +08:00
|
|
|
,'0000' AS subject_code -- 科目编码
|
2024-10-17 11:20:53 +08:00
|
|
|
,SUM(debit_amt_m) AS debit_amt_m -- 借方金额_当月累计
|
|
|
|
,SUM(debit_amt_y) AS debit_amt_y -- 借方金额_当年累计
|
|
|
|
,0 AS debit_amt_last_m -- 借方金额_上年同期
|
|
|
|
,0 AS debit_amt_last_y -- 借方金额_上年累计
|
|
|
|
FROM base_info_curr
|
|
|
|
WHERE (subject_code NOT like '660401%'
|
|
|
|
AND subject_code NOT like '660403%'
|
|
|
|
AND subject_code NOT like '660409%'
|
|
|
|
AND subject_code NOT like '660408%'
|
|
|
|
AND subject_code NOT like '660402%')
|
|
|
|
UNION ALL
|
|
|
|
-- 上期统计
|
|
|
|
SELECT
|
|
|
|
'材料费' AS subject_name -- 科目名称
|
2024-11-20 19:08:29 +08:00
|
|
|
,'660401' AS subject_code -- 科目编码
|
2024-10-17 11:20:53 +08:00
|
|
|
,0 AS debit_amt_m -- 借方金额_当月累计
|
|
|
|
,0 AS debit_amt_y -- 借方金额_当年累计
|
|
|
|
,SUM(debit_amt_m) AS debit_amt_last_m -- 借方金额_上年同期
|
|
|
|
,SUM(debit_amt_y) AS debit_amt_last_y -- 借方金额_上年累计
|
|
|
|
FROM base_info_last
|
|
|
|
WHERE subject_code like '660401%'
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
|
|
'职工薪酬' AS subject_name -- 科目名称
|
2024-11-20 19:08:29 +08:00
|
|
|
,'660403' AS subject_code -- 科目编码
|
2024-10-17 11:20:53 +08:00
|
|
|
,0 AS debit_amt_m -- 借方金额_当月累计
|
|
|
|
,0 AS debit_amt_y -- 借方金额_当年累计
|
|
|
|
,SUM(debit_amt_m) AS debit_amt_last_m -- 借方金额_上年同期
|
|
|
|
,SUM(debit_amt_y) AS debit_amt_last_y -- 借方金额_上年累计
|
|
|
|
FROM base_info_last
|
|
|
|
WHERE subject_code like '660403%'
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
|
|
'差旅费' AS subject_name -- 科目名称
|
2024-11-20 19:08:29 +08:00
|
|
|
,'660409' AS subject_code -- 科目编码
|
2024-10-17 11:20:53 +08:00
|
|
|
,0 AS debit_amt_m -- 借方金额_当月累计
|
|
|
|
,0 AS debit_amt_y -- 借方金额_当年累计
|
|
|
|
,SUM(debit_amt_m) AS debit_amt_last_m -- 借方金额_上年同期
|
|
|
|
,SUM(debit_amt_y) AS debit_amt_last_y -- 借方金额_上年累计
|
|
|
|
FROM base_info_last
|
|
|
|
WHERE subject_code like '660409%'
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
|
|
'加工费' AS subject_name -- 科目名称
|
2024-11-20 19:08:29 +08:00
|
|
|
,'660408' AS subject_code -- 科目编码
|
2024-10-17 11:20:53 +08:00
|
|
|
,0 AS debit_amt_m -- 借方金额_当月累计
|
|
|
|
,0 AS debit_amt_y -- 借方金额_当年累计
|
|
|
|
,SUM(debit_amt_m) AS debit_amt_last_m -- 借方金额_上年同期
|
|
|
|
,SUM(debit_amt_y) AS debit_amt_last_y -- 借方金额_上年累计
|
|
|
|
FROM base_info_last
|
|
|
|
WHERE subject_code like '660408%'
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
|
|
'技术服务费' AS subject_name -- 科目名称
|
2024-11-20 19:08:29 +08:00
|
|
|
,'660402' AS subject_code -- 科目编码
|
2024-10-17 11:20:53 +08:00
|
|
|
,0 AS debit_amt_m -- 借方金额_当月累计
|
|
|
|
,0 AS debit_amt_y -- 借方金额_当年累计
|
|
|
|
,SUM(debit_amt_m) AS debit_amt_last_m -- 借方金额_上年同期
|
|
|
|
,SUM(debit_amt_y) AS debit_amt_last_y -- 借方金额_上年累计
|
|
|
|
FROM base_info_last
|
|
|
|
WHERE subject_code like '660402%'
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
|
|
'其他' AS subject_name -- 科目名称
|
2024-11-20 19:08:29 +08:00
|
|
|
,'0000' AS subject_code -- 科目编码
|
2024-10-17 11:20:53 +08:00
|
|
|
,0 AS debit_amt_m -- 借方金额_当月累计
|
|
|
|
,0 AS debit_amt_y -- 借方金额_当年累计
|
|
|
|
,SUM(debit_amt_m) AS debit_amt_last_m -- 借方金额_上年同期
|
|
|
|
,SUM(debit_amt_y) AS debit_amt_last_y -- 借方金额_上年累计
|
|
|
|
FROM base_info_last
|
|
|
|
WHERE (subject_code NOT like '660401%'
|
|
|
|
AND subject_code NOT like '660403%'
|
|
|
|
AND subject_code NOT like '660409%'
|
|
|
|
AND subject_code NOT like '660408%'
|
|
|
|
AND subject_code NOT like '660402%')
|
2024-11-27 09:03:05 +08:00
|
|
|
),tmp_data AS (
|
|
|
|
SELECT
|
|
|
|
a.subject_name AS subject_name -- 科目名称
|
|
|
|
,SUM(a.amt) AS amt
|
|
|
|
FROM sdi_oth.ods_finance_budget_data a
|
|
|
|
JOIN corp b
|
|
|
|
on a.corp_name = b.corp_name
|
|
|
|
WHERE fee_type = '研发费用'
|
|
|
|
AND LEFT(years,4) = '${YEAR(sStart_mon)}'
|
|
|
|
GROUP BY a.subject_name
|
|
|
|
)
|
2024-10-17 11:20:53 +08:00
|
|
|
SELECT
|
2024-11-27 09:03:05 +08:00
|
|
|
a.subject_name AS subject_name -- 科目名称
|
2024-11-20 19:08:29 +08:00
|
|
|
,subject_code AS subject_code -- 科目编码
|
2024-10-17 11:20:53 +08:00
|
|
|
,IFNULL(SUM(debit_amt_m ) / 10000,0) AS debit_amt_m -- 借方金额_当月累计
|
|
|
|
,IFNULL(SUM(debit_amt_y ) / 10000,0) AS debit_amt_y -- 借方金额_当年累计
|
|
|
|
,IFNULL(SUM(debit_amt_last_m) / 10000,0) AS debit_amt_last_m -- 借方金额_上年同期
|
|
|
|
,IFNULL(SUM(debit_amt_last_y) / 10000,0) AS debit_amt_last_y -- 借方金额_上年累计
|
2024-11-27 09:03:05 +08:00
|
|
|
,IFNULL(SUM(b.amt),0) AS debit_amt_yusuan
|
|
|
|
FROM
|
|
|
|
(
|
|
|
|
SELECT subject_name AS subject_name -- 科目名称
|
|
|
|
, subject_code AS subject_code -- 科目编码
|
|
|
|
, SUM(debit_amt_m) AS debit_amt_m -- 借方金额_当月累计
|
|
|
|
, SUM(debit_amt_y) AS debit_amt_y -- 借方金额_当年累计
|
|
|
|
, SUM(debit_amt_last_m) AS debit_amt_last_m -- 借方金额_上年同期
|
|
|
|
, SUM(debit_amt_last_y) AS debit_amt_last_y -- 借方金额_上年累计
|
|
|
|
FROM subject_result
|
|
|
|
GROUP BY subject_name
|
|
|
|
, subject_code
|
|
|
|
)a
|
|
|
|
LEFT JOIN tmp_data b
|
|
|
|
ON a.subject_name = b.subject_name
|
2024-10-17 11:20:53 +08:00
|
|
|
GROUP BY
|
2024-11-27 09:03:05 +08:00
|
|
|
a.subject_name,subject_code
|
2024-10-17 11:20:53 +08:00
|
|
|
ORDER BY
|
2024-11-27 09:03:05 +08:00
|
|
|
DECODE(a.subject_name,'材料费','a','职工薪酬','b','差旅费','c','加工费','d','技术服务费','e','其他','f')
|