sentencia sql
Posted: Mon May 26, 2014 2:07 pm
Hola amigos, hace tiempo que estoy construyendo un sistema para mi empresa en sql, utilizando la clase tmysql de wormar. Esta funcionando bien, en lo que respecta a facturas, recibos etc. Ahora se me complica, no porque no lo haya resuelto pero sí por que esta mal resuelto, ya no utilizó la potencia de sql en lo que respecto a consulta de las facturas.
Este código funciona pero como verán estoy trabajando sobre las tablas individualmente
Como tendría que hacer para que con una sola consulta me traiga un sólo query, incluyendo ( 1) que es la tabla donde esta la descripción de los productos y que tiene la misma columna "codigo" que hay en la tabla "detalle"
Es decir factura + detalle + productos
Gracias por su atención
Este código funciona pero como verán estoy trabajando sobre las tablas individualmente
Code: Select all
oQryfac := oMysql:Query("SELECT * FROM factura WHERE nrofac =" + "'" + numfac + "' AND ncli=" + alltrim(str(nclia)) )
oQrydet := oMysql:Query("SELECT * FROM detalle WHERE nrofac =" + "'" + numfac + "' AND ncli=" + alltrim(str(nclia)) )
oCta:ntotal := oQryfac:importe
oCta:subtotal := oQryfac:baseimpo
oCta:niva := oQryfac:iva
oCta:condicion := oQryfac:plazo
oCta:ib := oQryfac:ingbruto
oCta:tipocom := oQryfac:tipo
oCta:pventa := substr( oQryfac:nrofac,1,4)
oCta:factura := substr( oQryfac:nrofac,6)
oCta:ncli := nclia
nRecno :=oQrydet:reccount()
if empty(nRecno)
msgstop("No hay datos completos para mostrar","Aviso del sistema")
oQrydet:end()
oQryfac:end()
return nil
endif
for z = 1 to nRecno
oQry := bprodu(,,oMysql, oQrydet:codigo) (1)
aadd(oCta:adet,{oQry:codigo,oQry:producto,oQry:marca,oQry:modelo, oQrydet:cantidad,oQrydet:costo,multi(oQrydet:cantidad,oQrydet:costo),0,.t.})
oQrydet:skip()
next
oQrydet:end()
oQryfac:end()
Es decir factura + detalle + productos
Gracias por su atención