I want to make a condition that does not appear in the lines with the TAXA column with the value 0, but I can not use column alias in where clause.
SELECT
SUBSTR(psca.cd_usuario_plano,4,4)||'-'||SUBSTR(psca.cd_usuario_plano,8,6)||'-'||SUBSTR(psca.cd_usuario_plano,14,2) AS CODIGO,
DECODE(pseg.nr_seq_titular, null, 'Titular', 'Dependente') || ': ' || substr(pefi.nm_pessoa_fisica, 1, 180) AS PESSOA_FISICA,
CASE WHEN pseg.nr_seq_titular IS NULL THEN
(SELECT NVL(MAX(plme.vl_lancamento),0) from PLS_LANCAMENTO_MENSALIDADE plme
WHERE 1=1
AND plme.dt_mes_competencia = pmen.dt_referencia
AND plme.ie_tipo_item = 20
AND plme.nr_seq_motivo = 10
AND plme.nr_seq_pagador = plme.nr_seq_pagador
) ELSE 0 END AS TAXA,
(SELECT
CASE WHEN SUM(NVL(plme.vl_lancamento, 0)) <> 0 THEN 'S' ELSE 'N' END
FROM pls_lancamento_mensalidade plme
WHERE 1=1
AND ((pmen.dt_referencia = '&MES') OR ('&MES' = ' / / '))
AND plme.ie_situacao <> 'I'
AND plme.nr_seq_pagador = pcpa.nr_sequencia
) AS TAXA_COBRADA
FROM
pls_segurado_carteira psca,
pessoa_fisica pefi,
pls_segurado pseg,
pls_mensalidade_segurado pmse,
pls_mensalidade pmen,
pls_contrato pcon,
pls_contrato_pagador pcpa
WHERE 1 = 1
AND pmen.nr_sequencia = pmse.nr_seq_mensalidade
AND pmse.nr_seq_segurado = pseg.nr_sequencia
AND pseg.cd_pessoa_fisica = pefi.cd_pessoa_fisica
AND psca.nr_seq_segurado = pseg.nr_sequencia
AND pmen.nr_seq_pagador = pcpa.nr_sequencia
AND pcpa.nr_seq_contrato = pcon.nr_sequencia
AND pmse.vl_mensalidade <> 0
AND ((pmen.dt_referencia = '&MES') OR ('&MES' = ' / / '))
AND pcon.cd_operadora_empresa = 39
AND TAXA > 0
ORDER BY
PESSOA_FISICA