MySQL - Consulta MySQL

 
Vista:
sin imagen de perfil

Consulta MySQL

Publicado por Alejandro (13 intervenciones) el 20/04/2010 20:56:16
Hola amigos

necesito hacer una consulta de la siguiente forma:

SELECT Operaciones.debito, SUM(Aplicaciones.impaplicado) AS aplicado ;
FROM Operaciones LEFT JOIN Aplicaciones ON Operaciones.id = Aplicaciones.id ;
WHERE Operaciones.id = 1 GROUP BY Operaciones.idoper

esto me devuelve

Debito Aplicado
100 50
125 0
80 80

Hasta ahi todo bien
pero yo solo quiero que me devuelva aquellos en los que debito <> aplicado
entonces en el where agrego la condicion esta y me da error

Alguien tuvo alguna vez una situacion similar?

La consulta que da error seria
SELECT Operaciones.debito, SUM(Aplicaciones.impaplicado) AS aplicado ;
FROM Operaciones LEFT JOIN Aplicaciones ON Operaciones.id = Aplicaciones.id ;
WHERE Operaciones.id = 1 AND operaciones.debito <> aplicado GROUP BY Operaciones.idoper
El error es "no existe aplicado en WHERE"

Desde ya muchas gracias
Alejandro
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta MySQL

Publicado por Leandro (3 intervenciones) el 20/04/2010 22:16:43
Nose la estructura de las tablas involucradas pero la sintaxis de la consulta deberia ser asi:

SELECT Operaciones.debito, SUM(Aplicaciones.impaplicado) AS aplicado
FROM Operaciones LEFT JOIN Aplicaciones ON Operaciones.id = Aplicaciones.id
WHERE Operaciones.id = 1 GROUP BY Operaciones.idoper , Operaciones.debito
HAVING aplicado <> operaciones.debito;

cuando haces group by en el select solo puedes pedir cosas del group by o aplicar funciones, por eso agrego operaciones.debito al group by.
Luego aplicado es el resultado del grupo, entonces para aplicar un filtro
sobre los grupos resultados es que se usa la clausula HAVING.
No puedes aplicar un filtro a un grupo en el where.

Otra cosa que vi es que tienes un punto y coma al final del select y del from
estos no van, el punto y coma va solo al final de la consulta.

Saludos
Leandro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Consulta MySQL

Publicado por Alejandro (13 intervenciones) el 21/04/2010 21:36:33
Gracias Leandro, muy util tu respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta MySQL

Publicado por Melvin Burgalin (2 intervenciones) el 09/09/2011 00:43:06
Proba con esto:
SELECT Operaciones.debito, SUM(Aplicaciones.impaplicado) AS aplicado ;
FROM Operaciones LEFT JOIN Aplicaciones ON Operaciones.id = Aplicaciones.id ;
WHERE Operaciones.id = 1 and operaciones.debito<>sum(aplicaciones.impaplicado) GROUP BY Operaciones.idoper
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar