SELECT
c.id AS contract_id,
c.number,
cph.pens_product_id,
tpprc.period_month_from,
tpprc.period_month_to,
hs."name" AS stage_name,
tpprc.k1,
tpprc.k2,
tpprc.k3,
tpprc.k4,
tpprc.contract_id AS coeff_contract_id
FROM ourpension.contract c
JOIN ourpension.contract_product_history cph
ON cph.contract_id = c.id
AND CURRENT_TIMESTAMP BETWEEN
cph.begin_date
AND COALESCE(cph.end_date, 'infinity')
JOIN prod_line.pens_product_param_pl pppp
ON pppp.pens_product_id = cph.pens_product_id
JOIN prod_line.param_pl pp
ON pp.id = pppp.param_pl_id
JOIN prod_line.table_param_pl_redemption_coeff tpprc
ON tpprc.pens_product_param_pl_id = pppp.id
LEFT JOIN prod_line.hb_stage hs
ON hs.id = tpprc.stage_id
WHERE pp.brief = 'ВыкупныеСуммыКоэффициентыНПО'
AND tpprc.period_month_from IS NOT NULL
AND (
tpprc.contract_id = c.id
OR (
tpprc.contract_id IS NULL
AND NOT EXISTS (
SELECT 1
FROM prod_line.table_param_pl_redemption_coeff x
WHERE x.contract_id = c.id
)
)
)
ORDER BY c.id DESC
LIMIT 20;