Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-10-2011
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
Restar en SQL

hola amigos como estan necesito una ayuda de ustedes resulta que tengo dos tabla

1- Depositos
2- Retiros

en la cual tengo los campo depositos y retiros cada campo en sus respetiva tablas lo que quiero es sumar todos los registro de ambos campo y luego restarlo esto es haciendo referencia a un cliente
como se haria esto en sql
Responder Con Cita
  #2  
Antiguo 24-10-2011
celades1 celades1 is offline
Miembro
 
Registrado: ago 2005
Posts: 116
Poder: 19
celades1 Va por buen camino
Hola

Código SQL [-]
 
select ((select sum(depositos ) from depositos where cliente_id=_cliente)-
(select sum(retiros) from retiros where cliente_id=_cliente)) diferencia
from RDB$DATABASE


La tabla RDB$DATABASE es de sistema en firebird que solo tiene un registro ,
pero se puede utilizar qualquier tabla que solo tenga 1 registro o bien una tabla con un where que devuelva 1 regitro

No se si es lo que querias , la explicacion no era muy detallada

Saludos
Responder Con Cita
  #3  
Antiguo 24-10-2011
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Yo lo haria con un join
Código SQL [-]
 SELECT clientes.nombre, SUM(depositos.importe) as total_depositos, SUM(retiros.importe)  as total_retiros, SUM(depositos.importe) - SUM(retiros.importe) as saldo
from
  clientes
JOIN DEPOSITOS ON (DEPOSITOS.num_cliente=clientes.num_cliente)
JOIN RETIROS ON (RETIROS.num_cliente=RETIROS.num_cliente)
GROUP BY CLIENTES.NUM_CLIENTE

Esto asumiendo que tus tablas de depositos y retiros tienen un campo comun que identifica al cliente (o bien un num de cuenta), los campos que utilice son meros ejemplos tendrías que poner los nombres de tus tablas y los campos correctos. Pero Así como te lo puse te lo hace todo en una sola operación, aunque si hablamos de millones de registros la consulta será un poco lenta, por lo que ahi tendrías que cambiar la estrategia, depende del diseño que tengas.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #4  
Antiguo 25-10-2011
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
probare los dos codigo haber cual me resulta mejor luego les digo
Responder Con Cita
  #5  
Antiguo 25-10-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Otra alternativa:
Código SQL [-]
SELECT FIRST 1 CLIENTES.RAZON,
       (SELECT SUM(DEPOSITOS.VALOR) FROM DEPOSITOS WHERE DEPOSITOS.ID_CLIENTE = :CLIENTE) AS DEPOSITADO,
       (SELECT SUM(RETIROS.VALOR) FROM RETIROS WHERE RETIROS.ID_CLIENTE = :CLIENTE) AS RETIRADO,
       (SELECT SUM(DEPOSITOS.VALOR) FROM DEPOSITOS WHERE DEPOSITOS.ID_CLIENTE = :CLIENTE)-
       (SELECT SUM(RETIROS.VALOR) FROM RETIROS WHERE RETIROS.ID_CLIENTE = :CLIENTE) AS SALDO
FROM CLIENTES, DEPOSITOS, RETIROS
GROUP BY CLIENTES.RAZON

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 27-10-2011
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
amigos les cuento que lo e resuelto poniendo los dos campo en una sola tabla
Código SQL [-]
Select Sum(Depositos - Retiros) as Balance where Nombre ='xxx'

asi de simple Gracias de todos modo
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
restar dos fechas luxus OOP 2 06-08-2008 22:07:34
restar fechas sql Oraxtar SQL 16 21-01-2008 22:01:44
Restar 2 imagenes walito Gráficos 20 22-04-2006 15:40:34
Restar Fechas jsanchez OOP 2 08-02-2006 19:29:55
Restar fechas majosf Conexión con bases de datos 11 16-11-2005 16:27:18


La franja horaria es GMT +2. Ahora son las 15:24:32.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi