Ver Mensaje Individual
  #4  
Antiguo 18-07-2004
celades celades is offline
No confirmado
 
Registrado: may 2003
Ubicación: Torroella de Montgrí (Girona)
Posts: 42
Reputación: 0
celades Va por buen camino
Hola no le veia errores pero al fin vi que te falta un end final

Código SQL [-]
CREATE PROCEDURE lDetalleTM (Des varchar (30),Codigo char (2))
RETURNS (Numero integer,TipoM varCHAR(40))
as
begin
Numero=0;
if (es='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 /*Faltaba este end*/
end^

los parentesis estan bien

si te funciona la unica sugerencia es cambiar los in que son lentos por exists

Espero que funcione
Responder Con Cita