Pessoall,
Minha duvida é que ao fazer esse select, como faria pra essa parte do filter caso não exista registro do tipo_movimentacao vim 0?
select *, suplementacao - reducao as Calculo from (
SELECT
suplementacao, reducao
FROM sch_compras.tb_classificacao_orcamentaria co
join lateral (select
sum(tmr.valor) filter (where tmr.tipo_movimentacao = 'A')
,sum(tmr.valor) filter (where tmr.tipo_movimentacao = 'R')
from sch_compras.tb_movimentacao_reserva tmr
where tmr.classificacao_orcamentaria_origem_id = co.id
) v(suplementacao,reducao) on true
INNER JOIN sch_compras.tb_origem o ON o.id = co.origem_id
INNER JOIN sch_compras.tb_processo_empenho pe ON pe.classificacao_orcamentaria_id = co.id
INNER JOIN sch_compras.tb_processo_empenho_dueof ped ON ped.processo_empenho_id = pe.id
WHERE co.ano::int = COALESCE(2021, co.ano::int)
and extract(month from pe.dt_empenho) = 1
and o.codigo = '0701'
and co.codigo = '2021.0701.03.091.4100.4141.03.100.90'
GROUP BY
co.id,
suplementacao,
reducao
ORDER BY 1,2) as teste