>ALTER PROCEDURE [dbo].[P_ANALISIS]@fecha1 varchar(10),@fecha2 varchar(10),@escolar int,@tipmov varchar(2),@nivel int,@dias int,@cuota int >AS >BEGIN >DECLARE @ParmDefinition NVARCHAR(2000),@condi varchar(2000),@sql nvarchar(4000) >SET @ParmDefinition = N'@fecha1 varchar(10),@fecha2 varchar(10),@escolar int,@tipmov char(2),@nivel int,@dias int,@cuota int' >set @sql='select rtrim(F.apellidos) as apellidos, >SUM(M.balance) as balance,SUM(M.cuota) as monto,SUM(m.recargo) as recargo,0 as anticipo, >descuentos=sum(CASE WHEN (@fecha1>m.fechadescuento) THEN 0 else (M.descuento+M.descuento2) END), >dias30=sum(CASE WHEN (datediff(dd,m.fechacuota,@fecha1)<=30 and @fecha1>=m.fechacuota) THEN m.balance else 0 END), >dias45=sum(CASE WHEN (datediff(dd,m.fechacuota,@fecha1)> 30 and datediff(dd,m.fechacuota,@fecha1)<= 45) THEN m.balance else 0 END), >dias60=sum(CASE WHEN (datediff(dd,m.fechacuota,@fecha1)> 45 and datediff(dd,m.fechacuota,@fecha1)<= 60) THEN m.balance else 0 END), >dias75=sum(CASE WHEN (datediff(dd,m.fechacuota,@fecha1)> 60 and datediff(dd,m.fechacuota,@fecha1)<= 75) THEN m.balance else 0 END), >dias90=sum(CASE WHEN (datediff(dd,m.fechacuota,@fecha1)> 75 and datediff(dd,m.fechacuota,@fecha1)<= 90) THEN m.balance else 0 END), >dias91=sum(CASE WHEN (datediff(dd,m.fechacuota,@fecha1)>=91) THEN m.balance else 0 END) >from cuotas m,familias f >where M.idfamilia=f.idfamilia and M.balance>0 ' > >IF @fecha1 IS NOT NULL and LEN(@Fecha1) > 0 > SET @condi = @condi +' AND m.fechacuota>= @fecha1' > >IF @fecha2 IS NOT NULL and len(@Fecha2) > 0 > SET @condi = @condi +' AND m.fechacuota<= @fecha2' > >IF @escolar <> 0 and @escolar IS NOT NULL > SET @condi = @condi +' AND m.escolar= @escolar' > >IF @tipmov != '' > SET @condi = @condi +' AND m.tiptra= @tipmov' > >IF @nivel <>0 and @Nivel IS NOT NULL > SET @condi = @condi +' AND m.nivel= @nivel' > >IF @dias <>0 and @dias IS NOT NULL > SET @condi = @condi +' AND m.dias= @dias' > >IF @cuota <>0 and @cuota IS NOT NULL > SET @cuota = @condi +' AND m.cuota= @cuota' > >set @sql=@sql+ @condi + 'group by M.idfamilia,F.apellidos' > >EXECUTE sp_executesql @sql,@ParmDefinition,@fecha1,@fecha2,@escolar,@tipmov,@nivel,@dias,@cuota > >I don't see where you initialized the @Condi. When you're debugging an SP, you need to add PRINT @SQL to verify if the @SQL is correct. I suspect in your case it will be NULL if the @Condi variable is not initialized.