Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Sql dynamic
Message
 
 
À
17/10/2011 20:48:43
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Titre:
Versions des environnements
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Network:
Windows 2003 Server
Database:
MS SQL Server
Application:
Desktop
Divers
Thread ID:
01526661
Message ID:
01526721
Vues:
34
>no, the code of stored procedure has not been changed, here is the code
>
>
>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.
If it's not broken, fix it until it is.


My Blog
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform