Ver Mensaje Individual
  #5 (permalink)  
Antiguo 14/01/2009, 09:19
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 3 meses
Puntos: 2658
Respuesta: Problema consulta group by y having

Dos cosas:
1. Según el esquema de la consulta que estás poniendo:
Código sql:
Ver original
  1. SELECT `codigo` , `codigomatricula` , `nombres` , `curso` , mes, SUM( `valor`)
  2. FROM meses
  3. WHERE curso = 'sexto' AND paralelo = 'b'
  4. GROUP BY `codigomatricula`
  5. HAVING `mes` = 22
Esta tiene tres condiciones para poder realizarse: a) El PARALELO debe ser igual a "B", y b) el CURSO debe ser "SEXTO" y c) MES debe ser "33"...

Ahora bien, si me remito al ejemplo que pones en un post anterior , Tienes, por ejemplo, estos datos:
Cita:
1 34 JUAN PEREZ 3 A 45454 2008-11-12 22 16 0
2 32 MARIA CALLE 1 A 45454 2008-12-02 11 16 0
3 35 IVAN PEREZ 1 A 45454 2008-10-12 11 32 0
4 36 LOURDES P 1 C 45454 2008-12-12 22 50 0
5 32 MARIA CALLE 1 A 45454 2008-12-02 33 16 0
6 35 IVAN PEREZ 1 A 45454 2008-10-12 11 32 0
7 35 IVAN PEREZ 1 A 45454 2008-10-12 11 32 0
Aunque uno de los valores si se cumple (MES es 33), no se cumple una condición previa: Ninguno de los registros tiene PARALELO igual a "B".
En definitiva, no hay forma con esos valores que la consulta sume nada... porque no hay registros para sumar.

Además, en ese tipo de consulta, como te indica jurena, MES no debe ir en el HAVING sino en el WHERE, ya que no estás calculando nada con él ni usando un calculo hecho con ese campo, sino que lo estás usando para acotar la selección.

2. Muy importante a nivel de foro: Estás multiplicando inútilmente el tema con la misma pregunta. Ya has puesto la pregunta al menos cuatro veces en diferentes POSTS y eso hace que sea muy difícil seguir la evolución de las respuestas y soluciones que te planteas. Trata de usar un sólo tema por pregunta y de esa forma podremos colaborar mejor contigo. De lo contrario se vuelve muy confuso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)