select
    ID,
    DESCRICAO,
    CONTA_DESC,
    sum(VALOR) as VALOR
from(

    select
        E.id,
        E.descricao,
        fn_mask(C.conta,'CONTA')||' - '||c.descricao as CONTA_DESC,
        iif(D.NATUREZA = 'D', d.valor * -1, d.valor) as VALOR
    from TBCONTAS_VARIACAO_ESTOQUE e,tbcontas_variacao_est_itens i, TBMOVCONTABIL D, tbcontacontabil c
    where e.status = 1
    AND i.conta_contabil = D.conta
    AND D.ano = :ano
    AND D.MES = :mes
    and i.contas_variacao_estoque_id = e.id
    and d.tipolanc <> 'E'
    and c.conta = d.conta

    union all

    select
        E.id,
        E.descricao,
        fn_mask(C.conta,'CONTA')||' - '||c.descricao as CONTA_DESC,
        iif(D.NATUREZA = 'D', d.valor * -1, d.valor) as VALOR
    from TBCONTAS_VARIACAO_ESTOQUE e, TBMOVCONTABIL D, tbcontacontabil c
    where e.status = 1
    AND e.conta_credito = D.conta
    AND D.ano = :ano
    AND D.MES = :mes
    and d.tipolanc <> 'E'
    and c.conta = d.conta

)
group by ID,DESCRICAO,CONTA_DESC
order by DESCRICAO,CONTA_DESC