Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Restar dos queries (https://www.clubdelphi.com/foros/showthread.php?t=71483)

mbguantay 22-12-2010 05:31:12

Restar dos queries
 
Hola amigos

quisiera saber si alguno de uds sabe si con MySQl se puede hacer una consulta tipo:

SELECT id, nombre, ((SELECT SUM(IMPORTE) FROM tabla1) - (SELECT SUM(IMPORTE) FROM tabla2)) AS saldo

Algo parecido, no la tengo bien en claro a la consulta aún solo quiero saber si la operacion resta entre dos consultas es posible.

Gracias!!!

marcoszorrilla 22-12-2010 07:32:42

Me da la impresión que así no funcionará.

Código Delphi [-]
Var
Resto:Double;

Query1.Sql.Add('Select Sum(loquesea) from ventas1');
Query2.Sql.Add('Select Sum(loquesea) from ventas2');

Resto:=Query1.Fields[0].AsFloat - Query2.Fields[0].AsFloat;

Creo que así te funcionará, es decir utilizando dos TQuery distintos.

Un Saludo.

rgstuamigo 22-12-2010 22:31:58

Cita:

Empezado por mbguantay (Mensaje 385596)
Hola amigos

quisiera saber si alguno de uds sabe si con MySQl se puede hacer una consulta tipo:

SELECT id, nombre, ((SELECT SUM(IMPORTE) FROM tabla1) - (SELECT SUM(IMPORTE) FROM tabla2)) AS saldo

Algo parecido, no la tengo bien en claro a la consulta aún solo quiero saber si la operacion resta entre dos consultas es posible.

Gracias!!!

Claro que se puede >
Código SQL [-]
SELECT id, nombre, (SELECT SUM(IMPORTE) FROM tabla1) - (SELECT SUM(IMPORTE) FROM tabla2) AS Saldo From Tu_Tabla;
Observacion: La observacion que veo es que la columna "Saldo" así como está en la consulta SQL anterior, pues tendrá el mismo valor para todas las filas resultante de la consulta.;)
Hummm...:rolleyes: no sé pero a mi me parece que lo que estas tratando de hacer es hacerlo por cada ID o Nombre de la tabla principal("Tu_Tabla"), pues si es ese caso creo que las sub-consultas donde se hacen la sumatoria deberían estar condicionadas con un Where ;) algo así:
Código SQL [-]
SELECT 
id,
nombre,
(SELECT SUM(IMPORTE) FROM tabla1 t1 where T.id=t1.id_Referencia) - (SELECT SUM(IMPORTE) FROM tabla2 t2 where T.id=t2.id_Referencia) AS Saldo 
FROM Tu_Tabla T;
De esa manera logramos que MySQL haga la subconsulta(columna saldo) por cada Id o fila diferente ;).


Cabe destacar
que t1.id_Referencia y t2.id_Referencia deberian ser campos de referencias(Foreign Key) a la tabla "Tu_Tabla", Es decir tanto la tabla "tabla1" como la tabla "tabla2" deberían estar relacionadas con la tabla "Tu_Tabla" con algun campo específico.;)
Saludos...:)


La franja horaria es GMT +2. Ahora son las 02:58:17.

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