Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Sql dynamic
Message
 
 
To
17/10/2011 21:38:05
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Title:
Environment versions
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Network:
Windows 2003 Server
Database:
MS SQL Server
Application:
Desktop
Miscellaneous
Thread ID:
01526661
Message ID:
01526730
Views:
32
>sorry but is this code
>
>
>DECLARE @ParmDefinition NVARCHAR(2000),@condi varchar(2000),@sql nvarchar(4000),@concepto varchar(50)
>SET @ParmDefinition = N'@fecha1 varchar(10),@fecha2 varchar(10),@escolar int,@tipmov char(2),@nivel int,@dias int,@cuota int'
>set @condi=''
>set @concepto='Balance a la Fecha'
>set @sql='select rtrim(F.apellidos) as apellidos,@concepto as concepto,
>SUM(M.balance) as balance,SUM(M.cuota) as monto,SUM(m.recargo) as recargo,0 as anticipo,
>descuentos=sum(CASE WHEN (@fecha2>m.fechadescuento) THEN 0 else (M.descuento+M.descuento2) END),
>dias30=sum(CASE WHEN (datediff(dd,m.fechacuota,@fecha2)<=30 and @fecha1>=m.fechacuota) THEN m.balance else 0 END),
>dias45=sum(CASE WHEN (datediff(dd,m.fechacuota,@fecha2)> 30 and  datediff(dd,m.fechacuota,@fecha2)<= 45)  THEN m.balance else 0 END),
>dias60=sum(CASE WHEN (datediff(dd,m.fechacuota,@fecha2)> 45 and  datediff(dd,m.fechacuota,@fecha2)<= 60)  THEN m.balance else 0 END),
>dias75=sum(CASE WHEN (datediff(dd,m.fechacuota,@fecha2)> 60 and  datediff(dd,m.fechacuota,@fecha2)<= 75)  THEN m.balance else 0 END),
>dias90=sum(CASE WHEN (datediff(dd,m.fechacuota,@fecha2)> 75 and  datediff(dd,m.fechacuota,@fecha2)<= 90)  THEN m.balance else 0 END),
>dias91=sum(CASE WHEN (datediff(dd,m.fechacuota,@fecha2)>=91) THEN m.balance else 0 END)
>from cuotas m,familias f 
>where M.idfamilia=f.idfamilia and M.balance>0 '
>
You don't need an extra variable:
DECLARE @ParmDefinition NVARCHAR(2000),@condi varchar(2000),@sql nvarchar(4000),@concepto varchar(50)
SET @ParmDefinition = N'@fecha1 varchar(10),@fecha2 varchar(10),@escolar int,@tipmov char(2),@nivel int,@dias int,@cuota int'
set @condi=''
set @sql='select rtrim(F.apellidos) as apellidos,''Balance a la Fecha'' as concepto,
SUM(M.balance) as balance,SUM(M.cuota) as monto,SUM(m.recargo) as recargo,0 as anticipo,
descuentos=sum(CASE WHEN (@fecha2>m.fechadescuento) THEN 0 else (M.descuento+M.descuento2) END),
dias30=sum(CASE WHEN (datediff(dd,m.fechacuota,@fecha2)<=30 and @fecha1>=m.fechacuota) THEN m.balance else 0 END),
dias45=sum(CASE WHEN (datediff(dd,m.fechacuota,@fecha2)> 30 and  datediff(dd,m.fechacuota,@fecha2)<= 45)  THEN m.balance else 0 END),
dias60=sum(CASE WHEN (datediff(dd,m.fechacuota,@fecha2)> 45 and  datediff(dd,m.fechacuota,@fecha2)<= 60)  THEN m.balance else 0 END),
dias75=sum(CASE WHEN (datediff(dd,m.fechacuota,@fecha2)> 60 and  datediff(dd,m.fechacuota,@fecha2)<= 75)  THEN m.balance else 0 END),
dias90=sum(CASE WHEN (datediff(dd,m.fechacuota,@fecha2)> 75 and  datediff(dd,m.fechacuota,@fecha2)<= 90)  THEN m.balance else 0 END),
dias91=sum(CASE WHEN (datediff(dd,m.fechacuota,@fecha2)>=91) THEN m.balance else 0 END)
from cuotas m,familias f 
where M.idfamilia=f.idfamilia and M.balance>0 '
If it's not broken, fix it until it is.


My Blog
Previous
Reply
Map
View

Click here to load this message in the networking platform