Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Sumar y restar dentro de WHERE

Estas en el tema de Sumar y restar dentro de WHERE en el foro de Mysql en Foros del Web. Estimados, estoy con un problema que no se resolver mediante MySQL y por eso acudo a su ayuda... Estoy necesitando generar una consulta, el SQL ...
  #1 (permalink)  
Antiguo 04/06/2007, 06:07
 
Fecha de Ingreso: enero-2005
Ubicación: Salta - Argentina
Mensajes: 322
Antigüedad: 19 años, 3 meses
Puntos: 7
Sumar y restar dentro de WHERE

Estimados, estoy con un problema que no se resolver mediante MySQL y por eso acudo a su ayuda...

Estoy necesitando generar una consulta, el SQL CREO tenerlo bien, pero sin embargo me salen errores y no trabaja como quiero.

El SQL es el siguiente:

SELECT
tbl_clientes.apellido,
tbl_clientes.nombre,
tbl_clientes.email1,
tbl_clientes.usuario,
tbl_clientes.id,
tbl_pagos.importe,
tbl_facturas.importe
FROM
tbl_clientes
RIGHT OUTER JOIN tbl_facturas ON (tbl_clientes.id = tbl_facturas.idCliente)
RIGHT OUTER JOIN tbl_pagos ON (tbl_clientes.id = tbl_pagos.idCliente)
WHERE
(SUM(tbl_pagos.importe) - SUM(tbl_facturas.importe) > 0)


Basicamente lo que quiero obtener con el SQL es la lista de todos los clientes donde la SUMA de todos sus pagos - la suma de todas sus facturas sean
mayores a cero.


Sera complicado llegar a esto?


Espero que puedan ayudarme. Desde ya muchas gracias
  #2 (permalink)  
Antiguo 05/06/2007, 01:38
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 19 años, 6 meses
Puntos: 2
Re: Sumar y restar dentro de WHERE

Me da que el error es que usas SUM en una consulta sin resultados agrupados, vamos que para sumar resultados debes tener un group by creo que te valdría algo como esto (siempre y cuando quieras conocer los datos por cliente).

Código:
SELECT
tbl_clientes.apellido,
tbl_clientes.nombre,
tbl_clientes.email1,
tbl_clientes.usuario,
tbl_clientes.id,
tbl_pagos.importe,
tbl_facturas.importe
FROM
tbl_clientes
RIGHT OUTER JOIN tbl_facturas ON (tbl_clientes.id = tbl_facturas.idCliente)
RIGHT OUTER JOIN tbl_pagos ON (tbl_clientes.id = tbl_pagos.idCliente)

GROUP BY 
tbl_clientes.id 
HAVING 
(SUM(tbl_pagos.importe) - SUM(tbl_facturas.importe) > 0)
 
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:50.