select
c.id as contract_id,
c.number as contract_number,
c.service_type,
cp.min_annual_income_period as contract_mgd_accumulation,
cp.min_annual_savings_income as contract_mgd_payment,
h.pens_product_id as product_id,
(
select p.value_decimal
from prod_line.pens_product_param_pl p
where p.pens_product_id = h.pens_product_id
and p.param_pl_id = 306
) as product_mgd_accum_from,
(
select p.value_decimal
from prod_line.pens_product_param_pl p
where p.pens_product_id = h.pens_product_id
and p.param_pl_id = 307
) as product_mgd_accum_to,
(
select p.value_decimal
from prod_line.pens_product_param_pl p
where p.pens_product_id = h.pens_product_id
and p.param_pl_id = 308
) as product_mgd_payment_from,
(
select p.value_decimal
from prod_line.pens_product_param_pl p
where p.pens_product_id = h.pens_product_id
and p.param_pl_id = 309
) as product_mgd_payment_to
from ourpension.contract c
left join ourpension.contract_params cp
on cp.contract_id = c.id
left join ourpension.contract_product_history h
on h.contract_id = c.id
and current_timestamp between
h.begin_date and coalesce(h.end_date, 'infinity')
where c.number = '371544';