FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Consulta SQL de saldos
Hola...estoy hace un tiempo sin darle una solucion a mi problema.
Les cuento: Tengo dos tablas(uso interbase 7 y delphi 6), una de debitos (id_cliente, importe)y otra de creditos (id_cliente, importe) entre otros campos. En la de debitos agrego un registro cuando viene un cliente y me encarga algo anotando en el registro importe su valor. Y como es de deducir en la tabla creditos agrego registros con el importe de lo que me pagan..Van entendiendo hasta aqui? Entonces lo que quiero hacer es sumar la columna importe de debitos y restarla con la suma de la columna importe de la tabla creditos para cada cliente. Escribo la consulta detallada a continuacion pero ahora no se como hacer para hacer un 'GROUP BY id_client' del resultado. Código:
select clientes.id_client , nombre, sum(import)*-1 as Saldo from clientes inner join debitos on clientes.id_client = debitos.id_client group by clientes.id_client , nombre UNION select clientes.id_client , nombre, sum(import) as Saldo from clientes inner join creditos on clientes.id_client = creditos.id_client group by clientes.id_client , nombre Código:
select id_cliente,nombre,sum(saldo) Saldo from sp_saldos group by id_cliente,nombre having sum(saldo) <> 0 order by nombre Muchas gracias por su tiempo.... |
#2
|
|||
|
|||
En un hilo anterior en el foro de impresión, comenté (aunque con otras palabras) que cuando me encuentro con este problema (el tener que hacer UNION) lo resuelvo creando tablas temporales
Código:
create temporary table tabla (campos) insert into tabla select campos from XXX etc insert into tabla select campos from YYY ect En tiempo de diseño conviene hacer esa tabla temporal permanente, y luego, cuando ya lo tienes diseñado, hacerla temporal Es una solución diferente a la que planteas pero que a la postre te resuelve el problema. Ventajas: Cuando hay que añadir otra tabla diferente, la programación está prácticamente hecha. |
#3
|
|||
|
|||
.
Última edición por FlacoNet fecha: 13-06-2003 a las 06:22:47. |
|
|
|