consulta Fox a SQL

16/02/2004 - 20:16 por JAVIER ANDRADE | Informe spam
Hola

Este codigo lo uso en visual foxpro para obtener el saldo, tengo identicas
las tablas solo que ahora estan en sql, como hacer el mismo procedimiento
pero en SQL

close data
use C:\COSTARICA\ABONADO.dbf shared in 0
USE C:\COSTARICA\document.dbf order ABOCOD shared in 0
select ABONADO
go top
scan
varAbocod=abocod
select Document
seek VARABOCOD
store 0 to mDebito, mHaber
do while varAbocod=abocod .and. .not. eof()
if abocod=varAbocod
do case
Case doctpo="1".or.doctpo="4".or.doctpo="6".or.doctpo="7"
mDebito = mDebito + DocImp
Case doctpo="2".or.doctpo="5".or.doctpo="3"
mHaber = mHaber + DocImp
Endcase
endif
skip
enddo
Select ABONADO
replace debito with mDebito, Haber with mHaber, saldo with Debito-Haber
endscan
 

Leer las respuestas

#1 Javier Loria
17/02/2004 - 00:20 | Informe spam
Hola Javier:
En el SQL puedes calcular el los valores, con algo como esto:
==SELECT SUM(CASE WHEN doctpo IN ('1','4','6',7')
THEN DocImp
ELSE 0
END ) AS Debito,
SUM(CASE WHEN doctpo IN ('2','3','5' )
THEN DocImp
ELSE 0
END ) AS Haber,
SUM(CASE WHEN doctpo IN ('1','4','6',7')
THEN DocImp
ELSE -DocImp
END ) AS Saldo
FROM Abonado
==Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

JAVIER ANDRADE escribio:
Hola

Este codigo lo uso en visual foxpro para obtener el saldo, tengo
identicas las tablas solo que ahora estan en sql, como hacer el mismo
procedimiento pero en SQL

close data
use C:\COSTARICA\ABONADO.dbf shared in 0
USE C:\COSTARICA\document.dbf order ABOCOD shared in 0
select ABONADO
go top
scan
varAbocod=abocod
select Document
seek VARABOCOD
store 0 to mDebito, mHaber
do while varAbocod=abocod .and. .not. eof()
if abocod=varAbocod
do case
Case doctpo="1".or.doctpo="4".or.doctpo="6".or.doctpo="7"
mDebito = mDebito + DocImp
Case doctpo="2".or.doctpo="5".or.doctpo="3"
mHaber = mHaber + DocImp
Endcase
endif
skip
enddo
Select ABONADO
replace debito with mDebito, Haber with mHaber, saldo with
Debito-Haber endscan

Preguntas similares