Duplicidad

Saludos

Tengo un código donde se realizan unos embargos y tengo un inconveniente muy delicado que es la duplicidad lo he revisado varias veces pero no veo el error, agradecería toda la orientación posible para corregirla.

 

PROCEDURE embargos IS
embargos   NUMBER:=0;
--porcentaje NUMBER:=0;
--bene_orig  NUMBER;
--desc_orig  VARCHAR2(60);
w_emba_oficio NUMBER:=0;
-- ** Saldo del embargo sin cancelar ** --
--BEGIN
    BEGIN
        SELECT emba_valor-NVL(SUM(mvem_valor),0),emba_oficio
    INTO :w_salembargo,w_emba_oficio
    FROM cxp.te_tmvemb,cxp.te_tembargo
    WHERE mvem_auxi(+) = emba_auxi
      AND mvem_juzgado(+) = emba_juzgado
      AND mvem_tpju(+)   = emba_tpju
      AND mvem_ciud(+)  = emba_ciud
      AND mvem_oficio(+) = emba_oficio
      AND emba_auxi = :w_auxiembargo
      AND emba_benefi = (SELECT DISTINCT emba_benefi
                         FROM cxp.te_tembargo e
                         WHERE e.emba_auxi = :w_auxiembargo
                           AND emba_status<>'C'
                           AND e.emba_feccre=(SELECT min(emba_feccre)
                                              FROM cxp.te_tembargo
                                              WHERE emba_auxi = :w_auxiembargo
                                                AND emba_status<>'C' ))
      AND emba_status<>'C'
     
      AND emba_feccre=(SELECT min(emba_feccre)
                       FROM cxp.te_tembargo
                       WHERE emba_auxi = :w_auxiembargo
                       AND emba_status<>'C' )
     
      GROUP BY emba_valor,emba_oficio, emba_auxi, emba_porcentaje;

            IF :w_salembargo <> 0 THEN
           
        --      IF :w_salembargo >= :w_valororpa THEN
                  message('SALDO EMBARGO: '||TO_CHAR(:w_salembargo,'$999,999,999,999.90')||chr(13)||'EMBARGO OFICIO:      '||TO_CHAR(w_emba_oficio) );
              --    message('SALDO EMBARGO: '||TO_CHAR(:w_salembargo,'$999,999,999,999.90'));                                   
                 -- :w_mvte_valor:=:w_valororpa;
                 -- :w_saldobene:=:w_salembargo-:w_valororpa;
    --          ELSE
              --    message('SALDO DE EMBARGO'||TO_CHAR(:w_salembargo,'$999,999,999,999.90')||' menor AL PAGO'||TO_CHAR(:w_valororpa,'$999,999,999,999.90'));                 
                 -- :w_mvte_valor:=:w_salembargo;
                  --trae_val_orig;
                 -- :w_saldobene:=:w_salembargo-:w_valororpa;
              END IF;
            --ELSE
             -- :mvte_benefi:=:mvte_auxi;  
              --:w_mvte_valor:=:w_saldobene;
            --  :w_mvte_valor:=:w_neto;
            --END IF; 
          EXCEPTION WHEN no_data_found THEN null;
              --     :w_salembargo:=embargos;
    END;
--END;

¿Puedes concretar un poco más? ¿Qué es lo que se te está duplicando? Si pones un ejemplo de lo que devuelve el procedure, e indicas lo que tu quieres que salga, será la mejor manera de verlo..