set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author: <jose manuel ramirez> -- Create date: <17-10-2011> -- ============================================= CRETAE 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 = '@fech1 varchar(10),@fech2 varchar(10),@escola int,@tipmo char(2),@nive int,@dia int,@cuot 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 group by M.idfamilia,F.apellidos' IF @fecha1 != '' SET @condi = @condi +' AND m.fechacuota>= @fecha1' IF @fecha2 != '' SET @condi = @condi +' AND m.fechacuota<= @fecha2' IF @escolar != '' SET @condi = @condi +' AND m.escolar= @escolar' IF @tipmov != '' SET @condi = @condi +' AND m.tiptra= @tipmov' IF @nivel != '' SET @condi = @condi +' AND m.escolar= @escolar' IF @dias != '' SET @condi = @condi +' AND m.escolar= @escolar' IF @cuota != '' SET @cuota = @condi +' AND m.escolar= @escolar' set @sql=@sql+@condi EXECUTE sp_executesql @sql,@ParmDefinition,@fecha1,@fecha2,@escolar,@tipmov,@nivel,@dias,@cuota