Problemas com SQL no Postgre [Resolvida]

Amigos, Estou revisando um SQL que até então estava funcionando, mas do nada o mesmo parou de funcionar. Já tentei de tudo para resolve-lo, e a unica forma de fazer funcionar é tirando o " | " das condições que estão dentro da clausula CASE “” WHEN 1 | 4 | 5 THEN.
Se eu deixar com apenas um dos dois funciona, mas até então o mesmo funcionava com os dois. E eu preciso deste SQL funcionando.
O SQL completo é o seguinte:

select distinct(produto_codigo_produto),
(sum(CASE tipooperestoque_codigo_tipo_oper_estoque
when 1 | 4 | 6 THEN e.quantidade
ELSE 0 end) -
sum(CASE tipooperestoque_codigo_tipo_oper_estoque
when 2 | 5 | 7 THEN e.quantidade
ELSE 0 end)) qtde
from estoquesetor e
join setorestab b on b.cod_setor_estab = e.setor_cod_setor_estab
where b.cod_setor_estab = 8
group by 1
HAVING
(sum(CASE tipooperestoque_codigo_tipo_oper_estoque
when 1 | 4 | 6 THEN e.quantidade
ELSE 0 end) -
sum(CASE tipooperestoque_codigo_tipo_oper_estoque
when 2 | 5 | 7 THEN e.quantidade
ELSE 0 end)) > 0

Se alguém souber uma outra maneira de realizar as condiçõesdentro da clausula CASE “” WHEN fico muito grato.
Desde já agradeço a atenção de todos.

Carinha, pelo que entendi, seu estoque tem operações de crédito (1, 4, 6) e débito (2,5,7). Eu penso em várias soluções para simplificar seu código e torná-lo mais legível, mas todos envolvem
operações de “Data Definition” no banco.

Uma coisa que me vem a cabeça, por exemplo, é que a tabela tipoperestoque tenha um sinal indicando se a operação é crédito ou débito (o “sinal”).
Aí seu SQL seria algo assim:

select distinct produto_codigo_produto, sum(e.quantidade * t.sinal) qtde
from estoquesetor e inner join <<tabela de operação de estoque>> t on e.tipooperestoque_codigo_tipo_oper_estoque = t.codigo_tipo_oper_estoque inner join setorestab b on b.cod_setor_estab = e.setor_cod_setor_estab
where b.cod_setor_estab = 8
group by 1
having (sum(e.quantidade * t.sinal)) > 0;

Muito obrigado pela dica.

Vou utilizar essa ideia que é muito boa.
Muito obrigado!

Abraços