form1-sub_sub-fix: правки по статьям #173
@ -132,22 +132,6 @@ SET expense_item_id = m.new_id
|
||||
FROM _expense_item_id_map m
|
||||
WHERE rprl.expense_item_id = -m.old_id;
|
||||
|
||||
DELETE FROM v3.expense_item_form_type
|
||||
WHERE form_type_code = 'FORM_4'
|
||||
AND expense_item_id IN (
|
||||
103, 104, 106, 107,
|
||||
500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
|
||||
513, 514, 515, 516, 517,
|
||||
518, 519, 520, 521, 522,
|
||||
525, 526, 527, 528,
|
||||
547, 548, 549, 550, 551, 552, 553, 554, 555,
|
||||
556, 557, 558,
|
||||
734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746,
|
||||
748,
|
||||
755, 756, 757, 758, 759, 760, 766,
|
||||
800, 801, 802, 803, 804, 805, 806, 807, 808
|
||||
);
|
||||
|
||||
CREATE OR REPLACE FUNCTION v3.sync_form2_ahr_satellite_lines(p_form_id integer)
|
||||
RETURNS void
|
||||
LANGUAGE plpgsql
|
||||
@ -922,6 +906,247 @@ BEGIN
|
||||
END;
|
||||
$function$;
|
||||
|
||||
CREATE OR REPLACE FUNCTION v3.v_form4_smeta(p_form_id integer)
|
||||
RETURNS TABLE(row_type character varying, depth integer, section_code character varying, name character varying, plan_supp_q1 numeric, plan_supp_q2 numeric, plan_supp_q3 numeric, plan_supp_q4 numeric, plan_supp_year numeric, plan_dev_q1 numeric, plan_dev_q2 numeric, plan_dev_q3 numeric, plan_dev_q4 numeric, plan_dev_year numeric, appr_supp_q1 numeric, appr_supp_q2 numeric, appr_supp_q3 numeric, appr_supp_q4 numeric, appr_supp_year numeric, appr_dev_q1 numeric, appr_dev_q2 numeric, appr_dev_q3 numeric, appr_dev_q4 numeric, appr_dev_year numeric, fact_supp_q1 numeric, fact_supp_q2 numeric, fact_supp_q3 numeric, fact_supp_q4 numeric, fact_supp_year numeric, fact_dev_q1 numeric, fact_dev_q2 numeric, fact_dev_q3 numeric, fact_dev_q4 numeric, fact_dev_year numeric, corr_supp_q1 numeric, corr_supp_q2 numeric, corr_supp_q3 numeric, corr_supp_q4 numeric, corr_supp_year numeric, corr_dev_q1 numeric, corr_dev_q2 numeric, corr_dev_q3 numeric, corr_dev_q4 numeric, corr_dev_year numeric)
|
||||
LANGUAGE plpgsql
|
||||
STABLE
|
||||
AS $function$
|
||||
#variable_conflict use_column
|
||||
BEGIN
|
||||
RETURN QUERY
|
||||
WITH
|
||||
-- Per-line per-direction агрегаты квартальных данных
|
||||
q_per_line AS (
|
||||
SELECT line_id,
|
||||
SUM(CASE WHEN quarter=1 THEN COALESCE(actual_m1,0)+COALESCE(actual_m2,0)+COALESCE(actual_m3,0) END) AS fq1,
|
||||
SUM(CASE WHEN quarter=2 THEN COALESCE(actual_m1,0)+COALESCE(actual_m2,0)+COALESCE(actual_m3,0) END) AS fq2,
|
||||
SUM(CASE WHEN quarter=3 THEN COALESCE(actual_m1,0)+COALESCE(actual_m2,0)+COALESCE(actual_m3,0) END) AS fq3,
|
||||
SUM(CASE WHEN quarter=4 THEN COALESCE(actual_m1,0)+COALESCE(actual_m2,0)+COALESCE(actual_m3,0)+COALESCE(actual_spod,0) END) AS fq4,
|
||||
SUM(CASE WHEN quarter=1 THEN transfer_to_q2 END) AS t1q2,
|
||||
SUM(CASE WHEN quarter=1 THEN transfer_to_q3 END) AS t1q3,
|
||||
SUM(CASE WHEN quarter=1 THEN transfer_to_q4 END) AS t1q4,
|
||||
SUM(CASE WHEN quarter=2 THEN transfer_to_q3 END) AS t2q3,
|
||||
SUM(CASE WHEN quarter=2 THEN transfer_to_q4 END) AS t2q4,
|
||||
SUM(CASE WHEN quarter=3 THEN transfer_to_q4 END) AS t3q4,
|
||||
SUM(CASE WHEN quarter=1 THEN COALESCE(adj_current,0)+COALESCE(adj_ssp,0)+COALESCE(adj_reserve,0) END) AS adj1,
|
||||
SUM(CASE WHEN quarter=2 THEN COALESCE(adj_current,0)+COALESCE(adj_ssp,0)+COALESCE(adj_reserve,0) END) AS adj2,
|
||||
SUM(CASE WHEN quarter=3 THEN COALESCE(adj_current,0)+COALESCE(adj_ssp,0)+COALESCE(adj_reserve,0) END) AS adj3,
|
||||
SUM(CASE WHEN quarter=4 THEN COALESCE(adj_current,0)+COALESCE(adj_ssp,0)+COALESCE(adj_reserve,0) END) AS adj4,
|
||||
-- Δ approved → new_plan: revision_inc/seq + target_change + base_correction
|
||||
-- (согласовано с v_form4_sheet_sections / Excel DJ10 = SUM(AN, CY, DH, CF, DE:DG))
|
||||
SUM(CASE WHEN quarter=2 THEN COALESCE(plan_revision_increase,0)+COALESCE(plan_revision_sequester,0)+COALESCE(target_change,0)+COALESCE(base_plan_correction,0) END) AS rev2,
|
||||
SUM(CASE WHEN quarter=3 THEN COALESCE(plan_revision_increase,0)+COALESCE(plan_revision_sequester,0)+COALESCE(target_change,0)+COALESCE(base_plan_correction,0) END) AS rev3,
|
||||
SUM(CASE WHEN quarter=4 THEN COALESCE(plan_revision_increase,0)+COALESCE(plan_revision_sequester,0)+COALESCE(target_change,0)+COALESCE(base_plan_correction,0) END) AS rev4
|
||||
FROM v3.budget_line_quarter GROUP BY line_id
|
||||
),
|
||||
seq_dfip AS (
|
||||
SELECT line_id, SUM(adj_q1) AS s1, SUM(adj_q2) AS s2, SUM(adj_q3) AS s3, SUM(adj_q4) AS s4
|
||||
FROM v3.sequestration WHERE actor='DFIP' GROUP BY line_id
|
||||
),
|
||||
seq_ssp AS (
|
||||
SELECT line_id, SUM(adj_q1) AS g1, SUM(adj_q2) AS g2, SUM(adj_q3) AS g3, SUM(adj_q4) AS g4
|
||||
FROM v3.sequestration WHERE actor='SSP_GO' GROUP BY line_id
|
||||
),
|
||||
-- Per-line aggregate.
|
||||
-- FORM_4 = "Расходы на развитие" (АХР_Р!F5='ПРОЕКТНАЯ ДЕЯТЕЛЬНОСТЬ' в Excel),
|
||||
-- поэтому все строки идут в колонку Development независимо от
|
||||
-- expense_item.direction (этот справочник общий с FORM_2 и для FORM_2
|
||||
-- проставлен 'Support'). Колонка Support по форме 4 всегда = 0.
|
||||
line_agg AS (
|
||||
SELECT
|
||||
bl.expense_item_id AS eid, 'Development'::VARCHAR AS dir,
|
||||
SUM(p.plan_q1) AS pq1, SUM(p.plan_q2) AS pq2, SUM(p.plan_q3) AS pq3, SUM(p.plan_q4) AS pq4,
|
||||
SUM(sd.s1) AS sd1, SUM(sd.s2) AS sd2, SUM(sd.s3) AS sd3, SUM(sd.s4) AS sd4,
|
||||
SUM(sg.g1) AS sg1, SUM(sg.g2) AS sg2, SUM(sg.g3) AS sg3, SUM(sg.g4) AS sg4,
|
||||
SUM(r.amount_q1) AS rq1, SUM(r.amount_q2) AS rq2, SUM(r.amount_q3) AS rq3, SUM(r.amount_q4) AS rq4,
|
||||
SUM(qp.fq1) AS fq1, SUM(qp.fq2) AS fq2, SUM(qp.fq3) AS fq3, SUM(qp.fq4) AS fq4,
|
||||
SUM(qp.t1q2) AS t1q2, SUM(qp.t1q3) AS t1q3, SUM(qp.t1q4) AS t1q4,
|
||||
SUM(qp.t2q3) AS t2q3, SUM(qp.t2q4) AS t2q4, SUM(qp.t3q4) AS t3q4,
|
||||
SUM(qp.adj1) AS adj1, SUM(qp.adj2) AS adj2, SUM(qp.adj3) AS adj3, SUM(qp.adj4) AS adj4,
|
||||
SUM(qp.rev2) AS rev2, SUM(qp.rev3) AS rev3, SUM(qp.rev4) AS rev4
|
||||
FROM v3.budget_line bl
|
||||
LEFT JOIN v3.plan p ON p.line_id = bl.id
|
||||
LEFT JOIN seq_dfip sd ON sd.line_id = bl.id
|
||||
LEFT JOIN seq_ssp sg ON sg.line_id = bl.id
|
||||
LEFT JOIN v3.reserve r ON r.line_id = bl.id
|
||||
LEFT JOIN q_per_line qp ON qp.line_id = bl.id
|
||||
WHERE bl.budget_form_id = p_form_id
|
||||
AND bl.expense_item_id NOT IN (
|
||||
103, 104, 106, 107,
|
||||
500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
|
||||
513, 514, 515, 516, 517,
|
||||
518, 519, 520, 521, 522,
|
||||
525, 526, 527, 528,
|
||||
547, 548, 549, 550, 551, 552, 553, 554, 555,
|
||||
556, 557, 558,
|
||||
734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746,
|
||||
748,
|
||||
755, 756, 757, 758, 759, 760, 766,
|
||||
800, 801, 802, 803, 804, 805, 806, 807, 808
|
||||
)
|
||||
GROUP BY bl.expense_item_id
|
||||
),
|
||||
-- Tree rollup с расщеплением по direction. Используем FILTER (WHERE)
|
||||
tw_rollup AS (
|
||||
SELECT
|
||||
t.id, t.depth, t.item_id AS section_code, t.name,
|
||||
-- Поддержка
|
||||
SUM(a.pq1) FILTER (WHERE a.dir='Support') AS s_pq1,
|
||||
SUM(a.pq2) FILTER (WHERE a.dir='Support') AS s_pq2,
|
||||
SUM(a.pq3) FILTER (WHERE a.dir='Support') AS s_pq3,
|
||||
SUM(a.pq4) FILTER (WHERE a.dir='Support') AS s_pq4,
|
||||
SUM(a.sd1) FILTER (WHERE a.dir='Support') AS s_sd1,
|
||||
SUM(a.sd2) FILTER (WHERE a.dir='Support') AS s_sd2,
|
||||
SUM(a.sd3) FILTER (WHERE a.dir='Support') AS s_sd3,
|
||||
SUM(a.sd4) FILTER (WHERE a.dir='Support') AS s_sd4,
|
||||
SUM(a.sg1) FILTER (WHERE a.dir='Support') AS s_sg1,
|
||||
SUM(a.sg2) FILTER (WHERE a.dir='Support') AS s_sg2,
|
||||
SUM(a.sg3) FILTER (WHERE a.dir='Support') AS s_sg3,
|
||||
SUM(a.sg4) FILTER (WHERE a.dir='Support') AS s_sg4,
|
||||
SUM(a.rq1) FILTER (WHERE a.dir='Support') AS s_rq1,
|
||||
SUM(a.rq2) FILTER (WHERE a.dir='Support') AS s_rq2,
|
||||
SUM(a.rq3) FILTER (WHERE a.dir='Support') AS s_rq3,
|
||||
SUM(a.rq4) FILTER (WHERE a.dir='Support') AS s_rq4,
|
||||
SUM(a.fq1) FILTER (WHERE a.dir='Support') AS s_fq1,
|
||||
SUM(a.fq2) FILTER (WHERE a.dir='Support') AS s_fq2,
|
||||
SUM(a.fq3) FILTER (WHERE a.dir='Support') AS s_fq3,
|
||||
SUM(a.fq4) FILTER (WHERE a.dir='Support') AS s_fq4,
|
||||
SUM(a.t1q2) FILTER (WHERE a.dir='Support') AS s_t1q2,
|
||||
SUM(a.t1q3) FILTER (WHERE a.dir='Support') AS s_t1q3,
|
||||
SUM(a.t1q4) FILTER (WHERE a.dir='Support') AS s_t1q4,
|
||||
SUM(a.t2q3) FILTER (WHERE a.dir='Support') AS s_t2q3,
|
||||
SUM(a.t2q4) FILTER (WHERE a.dir='Support') AS s_t2q4,
|
||||
SUM(a.t3q4) FILTER (WHERE a.dir='Support') AS s_t3q4,
|
||||
SUM(a.adj1) FILTER (WHERE a.dir='Support') AS s_adj1,
|
||||
SUM(a.adj2) FILTER (WHERE a.dir='Support') AS s_adj2,
|
||||
SUM(a.adj3) FILTER (WHERE a.dir='Support') AS s_adj3,
|
||||
SUM(a.adj4) FILTER (WHERE a.dir='Support') AS s_adj4,
|
||||
SUM(a.rev2) FILTER (WHERE a.dir='Support') AS s_rev2,
|
||||
SUM(a.rev3) FILTER (WHERE a.dir='Support') AS s_rev3,
|
||||
SUM(a.rev4) FILTER (WHERE a.dir='Support') AS s_rev4,
|
||||
-- Развитие
|
||||
SUM(a.pq1) FILTER (WHERE a.dir='Development') AS d_pq1,
|
||||
SUM(a.pq2) FILTER (WHERE a.dir='Development') AS d_pq2,
|
||||
SUM(a.pq3) FILTER (WHERE a.dir='Development') AS d_pq3,
|
||||
SUM(a.pq4) FILTER (WHERE a.dir='Development') AS d_pq4,
|
||||
SUM(a.sd1) FILTER (WHERE a.dir='Development') AS d_sd1,
|
||||
SUM(a.sd2) FILTER (WHERE a.dir='Development') AS d_sd2,
|
||||
SUM(a.sd3) FILTER (WHERE a.dir='Development') AS d_sd3,
|
||||
SUM(a.sd4) FILTER (WHERE a.dir='Development') AS d_sd4,
|
||||
SUM(a.sg1) FILTER (WHERE a.dir='Development') AS d_sg1,
|
||||
SUM(a.sg2) FILTER (WHERE a.dir='Development') AS d_sg2,
|
||||
SUM(a.sg3) FILTER (WHERE a.dir='Development') AS d_sg3,
|
||||
SUM(a.sg4) FILTER (WHERE a.dir='Development') AS d_sg4,
|
||||
SUM(a.rq1) FILTER (WHERE a.dir='Development') AS d_rq1,
|
||||
SUM(a.rq2) FILTER (WHERE a.dir='Development') AS d_rq2,
|
||||
SUM(a.rq3) FILTER (WHERE a.dir='Development') AS d_rq3,
|
||||
SUM(a.rq4) FILTER (WHERE a.dir='Development') AS d_rq4,
|
||||
SUM(a.fq1) FILTER (WHERE a.dir='Development') AS d_fq1,
|
||||
SUM(a.fq2) FILTER (WHERE a.dir='Development') AS d_fq2,
|
||||
SUM(a.fq3) FILTER (WHERE a.dir='Development') AS d_fq3,
|
||||
SUM(a.fq4) FILTER (WHERE a.dir='Development') AS d_fq4,
|
||||
SUM(a.t1q2) FILTER (WHERE a.dir='Development') AS d_t1q2,
|
||||
SUM(a.t1q3) FILTER (WHERE a.dir='Development') AS d_t1q3,
|
||||
SUM(a.t1q4) FILTER (WHERE a.dir='Development') AS d_t1q4,
|
||||
SUM(a.t2q3) FILTER (WHERE a.dir='Development') AS d_t2q3,
|
||||
SUM(a.t2q4) FILTER (WHERE a.dir='Development') AS d_t2q4,
|
||||
SUM(a.t3q4) FILTER (WHERE a.dir='Development') AS d_t3q4,
|
||||
SUM(a.adj1) FILTER (WHERE a.dir='Development') AS d_adj1,
|
||||
SUM(a.adj2) FILTER (WHERE a.dir='Development') AS d_adj2,
|
||||
SUM(a.adj3) FILTER (WHERE a.dir='Development') AS d_adj3,
|
||||
SUM(a.adj4) FILTER (WHERE a.dir='Development') AS d_adj4,
|
||||
SUM(a.rev2) FILTER (WHERE a.dir='Development') AS d_rev2,
|
||||
SUM(a.rev3) FILTER (WHERE a.dir='Development') AS d_rev3,
|
||||
SUM(a.rev4) FILTER (WHERE a.dir='Development') AS d_rev4
|
||||
FROM v3.mv_expense_item_tree t
|
||||
JOIN v3.expense_item_form_type eft ON eft.expense_item_id = t.id
|
||||
JOIN v3.budget_form bf ON bf.id = p_form_id AND bf.form_type_code = eft.form_type_code
|
||||
LEFT JOIN line_agg a ON a.eid = ANY(t.desc_ids)
|
||||
WHERE t.depth <= 2
|
||||
AND t.id NOT IN (
|
||||
103, 104, 106, 107,
|
||||
500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
|
||||
513, 514, 515, 516, 517,
|
||||
518, 519, 520, 521, 522,
|
||||
525, 526, 527, 528,
|
||||
547, 548, 549, 550, 551, 552, 553, 554, 555,
|
||||
556, 557, 558,
|
||||
734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746,
|
||||
748,
|
||||
755, 756, 757, 758, 759, 760, 766,
|
||||
800, 801, 802, 803, 804, 805, 806, 807, 808
|
||||
)
|
||||
GROUP BY t.id, t.depth, t.item_id, t.name
|
||||
)
|
||||
SELECT
|
||||
CASE r.depth WHEN 0 THEN 'ROOT' WHEN 1 THEN 'GROUP' WHEN 2 THEN 'ITEM' END::VARCHAR,
|
||||
r.depth,
|
||||
r.section_code::VARCHAR,
|
||||
r.name::VARCHAR,
|
||||
-- Plan supp / dev
|
||||
r.s_pq1, r.s_pq2, r.s_pq3, r.s_pq4,
|
||||
COALESCE(r.s_pq1,0)+COALESCE(r.s_pq2,0)+COALESCE(r.s_pq3,0)+COALESCE(r.s_pq4,0),
|
||||
r.d_pq1, r.d_pq2, r.d_pq3, r.d_pq4,
|
||||
COALESCE(r.d_pq1,0)+COALESCE(r.d_pq2,0)+COALESCE(r.d_pq3,0)+COALESCE(r.d_pq4,0),
|
||||
-- Approved supp = plan + seq_dfip + seq_ssp + reserve
|
||||
COALESCE(r.s_pq1,0)+COALESCE(r.s_sd1,0)+COALESCE(r.s_sg1,0)+COALESCE(r.s_rq1,0),
|
||||
COALESCE(r.s_pq2,0)+COALESCE(r.s_sd2,0)+COALESCE(r.s_sg2,0)+COALESCE(r.s_rq2,0),
|
||||
COALESCE(r.s_pq3,0)+COALESCE(r.s_sd3,0)+COALESCE(r.s_sg3,0)+COALESCE(r.s_rq3,0),
|
||||
COALESCE(r.s_pq4,0)+COALESCE(r.s_sd4,0)+COALESCE(r.s_sg4,0)+COALESCE(r.s_rq4,0),
|
||||
COALESCE(r.s_pq1,0)+COALESCE(r.s_sd1,0)+COALESCE(r.s_sg1,0)+COALESCE(r.s_rq1,0)
|
||||
+COALESCE(r.s_pq2,0)+COALESCE(r.s_sd2,0)+COALESCE(r.s_sg2,0)+COALESCE(r.s_rq2,0)
|
||||
+COALESCE(r.s_pq3,0)+COALESCE(r.s_sd3,0)+COALESCE(r.s_sg3,0)+COALESCE(r.s_rq3,0)
|
||||
+COALESCE(r.s_pq4,0)+COALESCE(r.s_sd4,0)+COALESCE(r.s_sg4,0)+COALESCE(r.s_rq4,0),
|
||||
-- Approved dev
|
||||
COALESCE(r.d_pq1,0)+COALESCE(r.d_sd1,0)+COALESCE(r.d_sg1,0)+COALESCE(r.d_rq1,0),
|
||||
COALESCE(r.d_pq2,0)+COALESCE(r.d_sd2,0)+COALESCE(r.d_sg2,0)+COALESCE(r.d_rq2,0),
|
||||
COALESCE(r.d_pq3,0)+COALESCE(r.d_sd3,0)+COALESCE(r.d_sg3,0)+COALESCE(r.d_rq3,0),
|
||||
COALESCE(r.d_pq4,0)+COALESCE(r.d_sd4,0)+COALESCE(r.d_sg4,0)+COALESCE(r.d_rq4,0),
|
||||
COALESCE(r.d_pq1,0)+COALESCE(r.d_sd1,0)+COALESCE(r.d_sg1,0)+COALESCE(r.d_rq1,0)
|
||||
+COALESCE(r.d_pq2,0)+COALESCE(r.d_sd2,0)+COALESCE(r.d_sg2,0)+COALESCE(r.d_rq2,0)
|
||||
+COALESCE(r.d_pq3,0)+COALESCE(r.d_sd3,0)+COALESCE(r.d_sg3,0)+COALESCE(r.d_rq3,0)
|
||||
+COALESCE(r.d_pq4,0)+COALESCE(r.d_sd4,0)+COALESCE(r.d_sg4,0)+COALESCE(r.d_rq4,0),
|
||||
-- Fact supp / dev
|
||||
r.s_fq1, r.s_fq2, r.s_fq3, r.s_fq4,
|
||||
COALESCE(r.s_fq1,0)+COALESCE(r.s_fq2,0)+COALESCE(r.s_fq3,0)+COALESCE(r.s_fq4,0),
|
||||
r.d_fq1, r.d_fq2, r.d_fq3, r.d_fq4,
|
||||
COALESCE(r.d_fq1,0)+COALESCE(r.d_fq2,0)+COALESCE(r.d_fq3,0)+COALESCE(r.d_fq4,0),
|
||||
-- Corrected supp = approved + transfers + revisions + adj
|
||||
COALESCE(r.s_pq1,0)+COALESCE(r.s_sd1,0)+COALESCE(r.s_sg1,0)+COALESCE(r.s_rq1,0)
|
||||
+COALESCE(r.s_adj1,0),
|
||||
COALESCE(r.s_pq2,0)+COALESCE(r.s_sd2,0)+COALESCE(r.s_sg2,0)+COALESCE(r.s_rq2,0)
|
||||
+COALESCE(r.s_t1q2,0)+COALESCE(r.s_rev2,0)+COALESCE(r.s_adj2,0),
|
||||
COALESCE(r.s_pq3,0)+COALESCE(r.s_sd3,0)+COALESCE(r.s_sg3,0)+COALESCE(r.s_rq3,0)
|
||||
+COALESCE(r.s_t1q3,0)+COALESCE(r.s_t2q3,0)+COALESCE(r.s_rev3,0)+COALESCE(r.s_adj3,0),
|
||||
COALESCE(r.s_pq4,0)+COALESCE(r.s_sd4,0)+COALESCE(r.s_sg4,0)+COALESCE(r.s_rq4,0)
|
||||
+COALESCE(r.s_t1q4,0)+COALESCE(r.s_t2q4,0)+COALESCE(r.s_t3q4,0)+COALESCE(r.s_rev4,0)+COALESCE(r.s_adj4,0),
|
||||
COALESCE(r.s_pq1,0)+COALESCE(r.s_pq2,0)+COALESCE(r.s_pq3,0)+COALESCE(r.s_pq4,0)
|
||||
+COALESCE(r.s_sd1,0)+COALESCE(r.s_sd2,0)+COALESCE(r.s_sd3,0)+COALESCE(r.s_sd4,0)
|
||||
+COALESCE(r.s_sg1,0)+COALESCE(r.s_sg2,0)+COALESCE(r.s_sg3,0)+COALESCE(r.s_sg4,0)
|
||||
+COALESCE(r.s_rq1,0)+COALESCE(r.s_rq2,0)+COALESCE(r.s_rq3,0)+COALESCE(r.s_rq4,0)
|
||||
+COALESCE(r.s_adj1,0)+COALESCE(r.s_adj2,0)+COALESCE(r.s_adj3,0)+COALESCE(r.s_adj4,0)
|
||||
+COALESCE(r.s_rev2,0)+COALESCE(r.s_rev3,0)+COALESCE(r.s_rev4,0),
|
||||
-- Corrected dev
|
||||
COALESCE(r.d_pq1,0)+COALESCE(r.d_sd1,0)+COALESCE(r.d_sg1,0)+COALESCE(r.d_rq1,0)
|
||||
+COALESCE(r.d_adj1,0),
|
||||
COALESCE(r.d_pq2,0)+COALESCE(r.d_sd2,0)+COALESCE(r.d_sg2,0)+COALESCE(r.d_rq2,0)
|
||||
+COALESCE(r.d_t1q2,0)+COALESCE(r.d_rev2,0)+COALESCE(r.d_adj2,0),
|
||||
COALESCE(r.d_pq3,0)+COALESCE(r.d_sd3,0)+COALESCE(r.d_sg3,0)+COALESCE(r.d_rq3,0)
|
||||
+COALESCE(r.d_t1q3,0)+COALESCE(r.d_t2q3,0)+COALESCE(r.d_rev3,0)+COALESCE(r.d_adj3,0),
|
||||
COALESCE(r.d_pq4,0)+COALESCE(r.d_sd4,0)+COALESCE(r.d_sg4,0)+COALESCE(r.d_rq4,0)
|
||||
+COALESCE(r.d_t1q4,0)+COALESCE(r.d_t2q4,0)+COALESCE(r.d_t3q4,0)+COALESCE(r.d_rev4,0)+COALESCE(r.d_adj4,0),
|
||||
COALESCE(r.d_pq1,0)+COALESCE(r.d_pq2,0)+COALESCE(r.d_pq3,0)+COALESCE(r.d_pq4,0)
|
||||
+COALESCE(r.d_sd1,0)+COALESCE(r.d_sd2,0)+COALESCE(r.d_sd3,0)+COALESCE(r.d_sd4,0)
|
||||
+COALESCE(r.d_sg1,0)+COALESCE(r.d_sg2,0)+COALESCE(r.d_sg3,0)+COALESCE(r.d_sg4,0)
|
||||
+COALESCE(r.d_rq1,0)+COALESCE(r.d_rq2,0)+COALESCE(r.d_rq3,0)+COALESCE(r.d_rq4,0)
|
||||
+COALESCE(r.d_adj1,0)+COALESCE(r.d_adj2,0)+COALESCE(r.d_adj3,0)+COALESCE(r.d_adj4,0)
|
||||
+COALESCE(r.d_rev2,0)+COALESCE(r.d_rev3,0)+COALESCE(r.d_rev4,0)
|
||||
FROM tw_rollup r
|
||||
ORDER BY r.section_code;
|
||||
END;
|
||||
$function$
|
||||
;
|
||||
|
||||
ALTER TABLE v3.expense_item
|
||||
ADD CONSTRAINT expense_item_expense_item_fk
|
||||
FOREIGN KEY (parent_id) REFERENCES v3.expense_item(id);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user