Ver Mensaje Individual
  #2  
Antiguo 15-07-2004
Avatar de ruina
ruina ruina is offline
Miembro
 
Registrado: jun 2004
Posts: 196
Reputación: 20
ruina Va por buen camino
prueba esto, no lo he probado asi que igual tiene algun error de sintaxis:

Código SQL [-]
COMMIT WORK;
SET TERM ^ ;
CREATE PROCEDURE DetalleTM (Des varchar (30),Codigo char (2))
RETURNS (Numero integer,TipoM varCHAR(40))
as
begin
Numero=0;
do
begin
if ( Des='Farmacia') then
begin
     FOR select DETALLE FROM TIPO_MATERIAL
     WHERE CODTIPOMATERIAL IN (select CODTIPOMATERIAL
     FROM TIPOMATERIAL_CUENTACONTABLE
     WHERE NROCUENTACON LIKE '125%'AND NROCUENTACON IN
     (SELECT NROCUENTACON FROM CUENTA_CONTABLE WHERE CODREG=:Codigo)) 
     into :TipoM; do
     begin
           numero = numero + 1;
           suspend;
      end  
end
else
begin
      FOR select DETALLE FROM TIPO_MATERIAL
     WHERE CODTIPOMATERIAL IN (select CODTIPOMATERIAL
     FROM TIPOMATERIAL_CUENTACONTABLE
     WHERE NROCUENTACON LIKE '121%' and NROCUENTACON LIKE '122%' AND NROCUENTACON  IN
     (SELECT NROCUENTACON FROM CUENTA_CONTABLE WHERE CODREG=:Codigo)) 
     into :TipoM do
     begin
            numero = numero + 1;
           suspend;
 end;
end
end^

la idea es hacer un FOR select y dentro del mismo un suspend.
Responder Con Cita