![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() Tengo 2 .db
![]() 1º debes.db 2º haberes.db campos de debes.db (IDproducto,IDcliente,fecha,Total) campos de haberes.db (IDcliente,fecha,Total) ![]() ![]() Cliente : Carlos Perez *************** grid de saldos ********** NomProducto___Conceptohaber___Fecha__Debe__ haber Total Diseño_____________________________________ 25/02/05__300 _____________300.- ____________________Pago a Cuenta _________26/02/05 ___________200 ____100.- *********************************************** IMPORTANTE: 1º) La columna NomProducto la obtengo del archivo servicios.db. Cada debe tiene un IDProducto. 2º) Conceptohaber la obtengo del campo "Concepto" que esta en el archivo haberes.db 3º) Fecha esta en los dos archivos, tanto para los debes como los haberes. 4º) Debe es el campo "DebeTotal" del archivo debes.db 5º) Haber es el campo "HaberTotal" del archivo haberes.db 6º) La columna Total habria que incluírla en el grid de saldos ya que es lo que hay que ir modificando a medida que se leen los debes y haberes. ![]() saludos de mar del plata, argentina. ale www.vastaproduccciones.com.ar Última edición por ale21alito fecha: 09-02-2005 a las 19:20:26. |
#2
|
|||
|
|||
Creo que lo que tienes que hacer es una consulta en SQL ya que si es posible hacerlo usando " Group by y having " estas son sentencias SQL que te pueden ayudar
|
#3
|
|||
|
|||
![]() no se como incorporar el GROUP BY y el HAVING para que haga lo que quiero. Sera posible poder hacer una consulta que imprima este listado de esta manera?. lo veo medio dificil me parece.
Yo intenté con esta : no conozco casi nada de SQL. estoy empezando ahora, asi que no creo que sea muy eficiente para hacer lo que quiero hacer SELECT D.*, S.Nombre, H.* FROM debes.db D, servicios.db S, haberes.db H WHERE S.ID = D.IDProducto AND D.IDCliente = 1 AND H.IDCliente = 1 ORDER BY D.fecha, H.fecha Pero no sale el listado como quiero que salga... algo esta mal ... ![]() |
#4
|
|||
|
|||
en el GRID, en cada registro de debes.db se repite continuamente el registro de haberes.db (hay 1 solo en la tabla).
|
#5
|
|||
|
|||
Hola.
Creo que tu problema se puede resolver con la siguiente consulta: select if(total>1,Nomproducto,'') as NomProducto,if(total<1,Nomproducto,'') as ConceptoHaber,fecha,if(total>1,total,0) as Debe,if(total<1,total,0) as Haber from (select cliente,NomProducto,fecha,total from debe,servicios where debe.IDproducto=servicios.Idproducto and cliente=1 union select cliente,concepto,fecha,(-total) from haber where cliente = 1 order by fecha) as consulta; Y para ir obteniendo el saldo te creas un campo calculado y con la ayuda de una variable lo vas calculando. A mi me funcionó con D7 y MySQL Versión 4.1.8 (admite subconsultas) Ten especial cuidado con: - que el campo total de la base de datos debe y haber pueda tener signo - en 'select .... union select ....' mantén el mismo orden de los campos que quieres seleccionar. - revisa los nombres de los campos y bases de datos en la consulta, puede que yo haya utilizado otros a los tuyos. Espero que te sirva. Saludos, Antonio.
__________________
TonyG |
![]() |
|
|
![]() |
|