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

Problema consulta Having

Estas en el tema de Problema consulta Having en el foro de Mysql en Foros del Web. Hola amigos, tengo un problema con una consulta en Mysql cuando hago la consulta de esta manera es correcto me muestra los registros: SELECT `codigo` ...
  #1 (permalink)  
Antiguo 12/01/2009, 13:16
 
Fecha de Ingreso: enero-2009
Mensajes: 67
Antigüedad: 15 años, 3 meses
Puntos: 1
Problema consulta Having

Hola amigos, tengo un problema con una consulta en Mysql cuando hago la consulta de esta manera es correcto me muestra los registros:
SELECT `codigo` , `codigomatricula` , `nombres` , `curso` , mes, SUM( `valor` ) FROM meses WHERE curso = "sexto" AND paralelo = "b" GROUP BY `codigomatricula` HAVING `mes` =11

Pero cuando cambio el valor a HAVING 22 OSEA ASI:

SELECT `codigo` , `codigomatricula` , `nombres` , `curso` , mes, SUM( `valor` ) FROM meses WHERE curso = "sexto" AND paralelo = "b" GROUP BY `codigomatricula` HAVING `mes` = 22

no me muestra níngun registro

Por favor si me pueden ayudar, de antemano muchas.
  #2 (permalink)  
Antiguo 12/01/2009, 17:25
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Problema consulta Having

Hola ivan2009
¿Sera que no existe el mes 22?, talvez el numero máximo es 12

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #3 (permalink)  
Antiguo 13/01/2009, 07:59
 
Fecha de Ingreso: enero-2009
Mensajes: 67
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Problema consulta Having

Hola Genetix
Te cuento que si existe el 22 son aproxiamdamente 6000 registros de los cuales unos tienes el mes 11 otros el 22 y 33.
Lo que deseo es sumar para cada mes descrito agrupado por codigo y tambien en el here por curso y paralelo

Gracias por tu aporte

Cita:
Iniciado por Genetix Ver Mensaje
Hola ivan2009
¿Sera que no existe el mes 22?, talvez el numero máximo es 12

Saludos!
  #4 (permalink)  
Antiguo 13/01/2009, 08:27
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Problema consulta Having

El problema es que esa condición debe ir en el where y no en el having, puesto que no es consecuencia de la agrupación, sino una restricción de la consulta que puedes aplicar a los registros.
Prueba esto (pienso que el campo mes es numérico, es decir de tipo INT; si fuera varchar tendrías que escribir el 22 entre comillas = '22'):
SELECT `codigo` , `codigomatricula` , `nombres` , `curso` , mes, SUM( `valor` ) FROM meses WHERE curso = "sexto" AND paralelo = "b" AND `mes` = 22 GROUP BY `codigomatricula`
  #5 (permalink)  
Antiguo 13/01/2009, 09:49
 
Fecha de Ingreso: enero-2009
Mensajes: 67
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Problema consulta Having

Hola jurena yo le puse dentro del where el mes=22 pero no me suma el valor pero cuando le pongo en el having mes=11 me hace la suma de valor pero cuando le cambio a otro valor mes=22 o mes=33 no hace nada, solo muestra los registros pero sin sumar


gracias por tu aporte pero sigo sin solucionarlo
  #6 (permalink)  
Antiguo 13/01/2009, 09:54
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Problema consulta Having

ivan2009,
vuelve a explicarnos qué es eso de mes 33 y mes 22,etc., y por qué lo buscas en el having. No tiene ningún sentido. Explícanos algo más sobre campos de la tabla, su naturaleza, con datos, y ejemplifica el resultado que debería dar, pues lo que pides parece algo fácil, pero no en el having, salvo que el valor que buscaras para mes fuera el resultado de una suma, cuenta, media, etc., pero no parece el caso.
No te preocupes, que lo sacaremos.
  #7 (permalink)  
Antiguo 13/01/2009, 10:40
 
Fecha de Ingreso: enero-2009
Mensajes: 67
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Problema consulta Having

Te explico tengo lo siguiente una tabla con 1000 registros cada usuario paga cada mes un valor: por ejemplo oct=22 nov=33 y asi sucesivamente porq estos mes=22, 33 etc, es porque puede pagar en diferentes fechas y esto le identifica al mes pagado y ademas estos son impresos estos codigos en un reporte para cada usuario.

tabla meses:

`codigo` int(11) NOT NULL auto_increment,
`codigomatricula` int(11) NOT NULL default '0',
`nombres` varchar(50) default NULL,
`curso` varchar(25) default NULL,
`paralelo` char(2) default NULL,
`nodeposito` varchar(40) default NULL,
`fechadeposito` date default NULL,
`mes` varchar(20) default NULL,
`valor` int(11) default NULL,
`afavor` varchar(40) default NULL,
PRIMARY KEY (`codigo`),
KEY `codigomatricula` (`codigomatricula`)


codigo codigomatricula nombres curso paralelo nodeposito fechadeposito mes valor afavor
1 34 JUAN PEREZ 3 A 45454 2008-11-12 22 16 0
[COLOR="rgb(139, 0, 0)"]2 32 MARIA CALLE 1 A 45454 2008-12-02 11 16 0[/COLOR]
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


Lo que deseo es hacer una consulta que me agrupe por codigomatricula y que pertenezcan a un curso y paralelo y mes, y me muestre para cada usuario cuanto ha pagado.

osea

codigo codigomatricula nombres curso paralelo nodeposito fechadeposito mes valor afavor
1 34 JUAN PEREZ 3 A 45454 2008-11-12 22 16 0
2 32 MARIA CALLE 1 A 45454 2008-12-02 11 32 0
4 36 LOURDES P 1 A 45454 2008-12-12 22 50 0
6 35 IVAN PEREZ 1 A 45454 2008-10-12 11 96 0

Por favor si me pueden ayudar, de antemano muchas.
  #8 (permalink)  
Antiguo 13/01/2009, 13:32
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Problema consulta Having

Creo que no deberías duplicar los datos en la tabla: te bastaría con el códigomatricula, y luego a partir de él podrías sacar el nombre. Esta consulta me ha funcionado, aunque claro debes escribir el número del mes entrecomillado ya que lo tienes como varchar.

SELECT `codigo` , `codigomatricula` , `nombres` , `curso` , mes, SUM( `valor` ) FROM meses WHERE curso = "1" AND paralelo = "A" AND `mes` = '11' GROUP BY `codigomatricula`
  #9 (permalink)  
Antiguo 13/01/2009, 14:03
 
Fecha de Ingreso: enero-2009
Mensajes: 67
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Problema consulta Having

Necesito la ayuda de alguien en este problemilla sin solucionarlo de esta consulta,
Hola amigos, tengo un problema con una consulta en Mysql cuando hago la consulta de esta manera es correcto me muestra los registros:
SELECT `codigo` , `codigomatricula` , `nombres` , `curso` , mes, SUM( `valor` ) FROM meses WHERE curso = "sexto" AND paralelo = "b" GROUP BY `codigomatricula` HAVING `mes` =11

Pero cuando cambio el valor a HAVING 22 OSEA ASI:

SELECT `codigo` , `codigomatricula` , `nombres` , `curso` , mes, SUM( `valor` ) FROM meses WHERE curso = "sexto" AND paralelo = "b" GROUP BY `codigomatricula` HAVING `mes` = 22

no me muestra níngun registro


gracias
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 13:42.