-- ***************************** -- 创建人员: 杨坤安 -- 创建时间: 2024-10-18 -- 功能描述: 财务预算金额填报 填报表 -- ***************************** DROP TABLE IF EXISTS sdi_oth.ods_finance_budget_fill; CREATE TABLE sdi_oth.ods_finance_budget_fill ( ID SERIAL PRIMARY KEY ,years VARCHAR(50) ,corp_code VARCHAR(100) ,corp_name VARCHAR(100) ,fee_type VARCHAR(100) ,subject_code VARCHAR(100) ,subject_name VARCHAR(100) ,begin_amt VARCHAR(50) ,adj_amt VARCHAR(50) ,amt VARCHAR(50) ,update_date VARCHAR(50) ,update_by VARCHAR(50) ); -- 为表添加注释 COMMENT ON TABLE sdi_oth.ods_finance_budget_fill IS '财务预算金额填报表'; -- 为字段添加注释 COMMENT ON COLUMN sdi_oth.ods_finance_budget_fill.years IS '年度'; COMMENT ON COLUMN sdi_oth.ods_finance_budget_fill.corp_code IS '公司编码'; COMMENT ON COLUMN sdi_oth.ods_finance_budget_fill.corp_name IS '公司名称'; COMMENT ON COLUMN sdi_oth.ods_finance_budget_fill.fee_type IS '费用类型:销售费用|管理费用|研发费用|财务费用'; COMMENT ON COLUMN sdi_oth.ods_finance_budget_fill.subject_code IS '科目编码'; COMMENT ON COLUMN sdi_oth.ods_finance_budget_fill.subject_name IS '科目名称'; COMMENT ON COLUMN sdi_oth.ods_finance_budget_fill.begin_amt IS '年初预算金额'; COMMENT ON COLUMN sdi_oth.ods_finance_budget_fill.adj_amt IS '预算调整金额'; COMMENT ON COLUMN sdi_oth.ods_finance_budget_fill.amt IS '调整后预算金额'; COMMENT ON COLUMN sdi_oth.ods_finance_budget_fill.update_date IS '更新时间'; COMMENT ON COLUMN sdi_oth.ods_finance_budget_fill.update_by IS '更新人'; TRUNCATE TABLE sdi_oth.ods_finance_budget_fill; SELECT COUNT(1) FROM sdi_oth.ods_finance_budget_fill WHERE begin_amt is NOT NULL; SELECT * FROM sdi_oth.ods_finance_budget_fill WHERE begin_amt is NOT NULL; SELECT years ,corp_code ,corp_name ,fee_type ,subject_code ,subject_name ,begin_amt ,adj_amt ,amt FROM sdi_oth.ods_finance_budget_fill where years = '${sYear}' ; SELECT corp_code -- 公司编码 ,corp_name -- 公司名称 FROM dwr.dim_corp WHERE corp_type = '实体' AND (parent_corp_code LIKE '02%' OR corp_code = '0301') SELECT subject_code ,subject_name FROM dwr.dim_subject WHERE (subject_code like '6601%' or subject_code like '6602%' or subject_code like '6603%' or subject_code like '6604%' ) DROP TABLE IF EXISTS sdi_oth.ods_finance_budget_data; CREATE TABLE sdi_oth.ods_finance_budget_data ( corp_name VARCHAR(100) ,years VARCHAR(50) ,fee_type VARCHAR(100) ,subject_name VARCHAR(100) ,amt VARCHAR(50) ); WITH corp AS ( SELECT corp_code -- 公司编码 ,corp_name -- 公司名称 FROM dwr.dim_corp a WHERE corp_type = '实体' AND (parent_corp_code LIKE '02%' OR corp_code = '0301') 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 +"')", "")} ) SELECT a.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