Ver Mensaje Individual
  #20  
Antiguo 16-09-2004
aurafern aurafern is offline
Miembro
 
Registrado: dic 2003
Posts: 34
Reputación: 0
aurafern Va por buen camino
y el procedimiento

Código SQL [-]

CREATE PROCEDURE CARTERA_PROVEEDORES_PROC 
(
  EMPRESA VARCHAR(100),
  SUCURSAL VARCHAR(100),
  MODELO VARCHAR(15),
  NO_RANGOS INTEGER,
  PFECHA TIMESTAMP,
  PVENDEDOR VARCHAR(100),
  PZONA VARCHAR(100),
  PCUENTA VARCHAR(100),
  PTERCERO VARCHAR(100),
  PSUC_TERCERO VARCHAR(100),
  PSUC_VENDEDOR VARCHAR(100)
)
RETURNS
(
  ID_AUXILIAR VARCHAR(12),
  ID_EMPRESA VARCHAR(2),
  ID_SUCURSAL VARCHAR(2),
  ID_TIPO VARCHAR(3),
  NUMERO INTEGER,
  CUOTA INTEGER,
  ID_TERCERO INTEGER,
  ID_SUCURSAL_TERCERO INTEGER,
  NOMBRE_TERC VARCHAR(250),
  TELEFONO_TERC VARCHAR(30),
  SALDO DOUBLE PRECISION,
  FECHA_DOC TIMESTAMP,
  VENCIMIENTO TIMESTAMP,
  ID_VENDEDOR INTEGER,
  NOMBRE_VEND VARCHAR(250),
  DESCRIPCION VARCHAR(255),
  DIAS DOUBLE PRECISION,
  RANGO1 DOUBLE PRECISION,
  RANGO2 DOUBLE PRECISION,
  RANGO3 DOUBLE PRECISION,
  RANGO4 DOUBLE PRECISION,
  RANGO5 DOUBLE PRECISION,
  RANGO6 DOUBLE PRECISION,
  RANGO7 DOUBLE PRECISION,
)
AS
declare variable ID_MODELO varchar(15);
     declare variable ID_RANGO integer;
     declare variable ID_DESCRIPCION_RANGO varchar(10);
     declare variable DESCRIPCION_RANGO varchar(50);
     declare variable DESDE integer;
     declare variable HASTA integer;
     declare variable TIPO_RANGO varchar(10);
     declare variable NUMERO_RANGOS integer;
     declare variable TITULO varchar(50);
     declare variable Sql_INS VARCHAR(1024);
begin
FOR SELECT RANGO_REP_TERCERO_DET.ID_MODELO,
      RANGO_REP_TERCERO_DET.ID_RANGO,
      RANGO_REP_TERCERO_DET.ID_DESCRIPCION_RANGO,
      RANGO_REP_TERCERO_DET.DESCRIPCION_RANGO,
      RANGO_REP_TERCERO_DET.DESDE,
      RANGO_REP_TERCERO_DET.HASTA,
      RANGO_REP_TERCERO_DET.TIPO_RANGO,
      RANGO_REP_TERCERO.NUMERO_RANGOS,
      RANGO_REP_TERCERO.DESCRIPCION AS TITULO
from RANGO_REP_TERCERO_DET,RANGO_REP_TERCERO
where RANGO_REP_TERCERO_DET.ID_MODELO=RANGO_REP_TERCERO.ID_MODELO AND RANGO_REP_TERCERO.ID_MODELO=:modelo
INTO   :ID_MODELO, :Id_rango, :ID_DESCRIPCION_RANGO,ESCRIPCION_RANGO,ESDE,:HASTA,:TIPO_RANGO, :NUMERO_RANGOS,:TITULO
DO
BEGIN
 SALDO=0; RANGO1=0; RANGO2=0; RANGO3=0; RANGO4=0; RANGO5=0; RANGO6=0; RANGO7=0;
SQL_INS= 'SELECT SUM(e.DEBITO-e.CREDITO) AS SALDO, e.ID_AUXILIAR,e.ID_EMPRESA_CRUCE, e.ID_SUCURSAL_CRUCE,e.ID_TIPO_DOC_CRUCE, e.numero_cruce, E.CUOTA_CRUCE, ';
SQL_INS=SQL_INS ||' d.fecha, d.vencimiento,e.id_tercero,e.ID_SUCURSAL_TERCERO, E.ID_VENDEDOR FROM CUENTAS_POR_TERCERO e , cuentas_por_tercero d ';
SQL_INS=SQL_INS ||' where e.ID_EMPRESA_CRUCE=d.ID_EMPRESA and e.ID_SUCURSAL_CRUCE=d.ID_SUCURSAL AND E.CUOTA_CRUCE=D.CUOTA ';
SQL_INS=SQL_INS ||' and e.ID_TIPO_DOC_CRUCE= d.id_tipo_doc and e.numero_cruce=d.numero ' ||:EMPRESA ||:SUCURSAL;
SQL_INS=SQL_INS ||' and ( "'||fecha || '" - d.vencimiento)>= ' ||:desde || ' and ( "'||fecha || '" - d.vencimiento)<= ' ||:hasta;
SQL_INS=SQL_INS || tercero || :PVENDEDOR || :PSUC_VENDEDOR;
SQL_INS=SQL_INS || suc_tercero ||cuenta;
SQL_INS=SQL_INS ||' GROUP BY e.ID_AUXILIAR,e.ID_EMPRESA_CRUCE, e.ID_SUCURSAL_CRUCE,e.ID_TIPO_DOC_CRUCE, ';
SQL_INS=SQL_INS ||' e.numero_cruce, E.CUOTA_CRUCE , d.fecha, d.vencimiento,e.id_tercero,e.ID_SUCURSAL_TERCERO, E.ID_VENDEDOR ';
SQL_INS=SQL_INS ||' having SUM(e.DEBITO-e.CREDITO)<>0 ';
FOR EXECUTE STATEMENT SQL_INS
into :saldo,:id_auxiliar,:id_empresa,:id_sucursal,:id_tipo,:numero,:cuota,:fecha_DOC,:vencimiento,:id_ter  cero,:id_sucursal_tercero, :ID_VENDEDOR
DO
   BEGIN
   dias = fecha - :vencimiento;
       if (:ID_DESCRIPCION_RANGO='RANGO1') then
    begin
    rango1=:saldo;
    end
    else if (:ID_DESCRIPCION_RANGO='RANGO2') then
    begin
    rango2=:saldo;
    end
    else if (:ID_DESCRIPCION_RANGO='RANGO3') then
    begin
    rango3=:saldo;
    end
    else if (:ID_DESCRIPCION_RANGO='RANGO4') then
    begin
    rango4=:saldo;
    end
    else if (:ID_DESCRIPCION_RANGO='RANGO5') then
    begin
    rango5=:saldo;
    end
    else if (:ID_DESCRIPCION_RANGO='RANGO6') then
    begin
    rango6=:saldo;
    end
      else if (:ID_DESCRIPCION_RANGO='RANGO7') then
    begin
    rango7=:saldo;
    end
  suspend;
  SALDO=0; RANGO1=0; RANGO2=0; RANGO3=0; RANGO4=0; RANGO5=0; RANGO6=0; RANGO7=0;
  END
 end
end
Responder Con Cita