Загрузка данных


WITH cte_pens_product AS MATERIALIZED
(
    SELECT
        products.id,
        products."name",
        products.pens_scheme_accum_stage_id AS scheme_id
    FROM ourpension.contract_product_history history
        INNER JOIN prod_line.pens_product products
            ON products.id = history.pens_product_id
    WHERE history.contract_id = 13405120
      AND CURRENT_TIMESTAMP BETWEEN
          history.begin_date
          AND COALESCE(history.end_date, 'infinity')
    LIMIT 1
),
cte_param_pl AS MATERIALIZED
(
    SELECT
        pp2.id AS param_id,
        pp2.brief,
        pppp.value_decimal
    FROM cte_pens_product cpp
        INNER JOIN prod_line.pens_product pens_p
            ON pens_p.id = cpp.id
        INNER JOIN prod_line.pens_product_param_pl pppp
            ON pppp.pens_product_id = pens_p.id
        INNER JOIN prod_line.param_pl pp2
            ON pp2.id = pppp.param_pl_id
)
SELECT
    cpp.id AS product_id,

    (
        SELECT param.value_decimal
        FROM cte_param_pl param
        WHERE param.brief = 'МГДНакПериодС'
    ) AS mgd_accumulation_period,

    (
        SELECT param.value_decimal
        FROM cte_param_pl param
        WHERE param.brief = 'МГДВыплПериодС'
    ) AS mgd_payment_period

FROM cte_pens_product cpp;