Ver Mensaje Individual
  #1  
Antiguo 01-11-2006
efelix efelix is offline
Miembro
 
Registrado: jul 2006
Posts: 84
Reputación: 18
efelix Va por buen camino
Parámetros del procedimiento almacenado

Hola a todos, saludos. Tengo el siguiente procedimiento almacenado en Microsoft Sql Server 2000:
Código SQL [-]
CREATE PROCEDURE spImporteTotalEdadCuentasxPagar
               (@Dias integer,
                @Importe money OUTPUT,
               @Dias1 integer = NULL)       
 AS
   IF (@Dias1 IS Null)
   begin
       SELECT @Dias1=0
   end 
IF (@Dias>=90)
BEGIN
  SELECT @Importe=IsNull(Sum(Importe),0)
  FROM Facturas
  WHERE(Aplicada=0) AND DATEDIFF(day,FechaRecepcion, GETDATE())>=@Dias AND DATEDIFF(day,FechaRecepcion, GETDATE())<=@Dias1
END
ELSE
BEGIN
  SELECT @Importe=IsNull(Sum(Importe),0)
  FROM Facturas 
  WHERE(Aplicada=0) AND DATEDIFF(day,FechaRecepcion, GETDATE())>=@Dias AND DATEDIFF(day,FechaRecepcion, GETDATE())<=@Dias1
END
GO
Explico que persigo con el mismo: tengo una tabla denominada factura con un campo Importe donde almacenado el importe de las facturas recibidas, con este procedimiento lo que persigo es que cuando se pongan los rangos de días me devuelva el importe total de las facturas pendientes de pago para ese rango. Ahora los posible rangos son, 0-30,30-60,60-90 y mas de 90 días, por eso es que hago nulo el segundo parámetro cuando el valor del primero es 90. Ahora cuando pongo los rangos de días si me funciona perfectamente bien, sin embargo cuando solo pongo valor en el primer parámetro no me genera ningún error solo que no me suma el Importe me devuelve 0.0000, además cuando el primer parámetro lo pongo a 90 me pasa lo mismo, sin embargo si pongo el rango si funciona, devolviéndome la suma del importe de las facturas sin pagar que se encuentran entre el rango de días. Alguién pudiera decirme que está mal, por qué no funciona. No se ya que hacer. Muchas gracias.
Responder Con Cita