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

Consulta con dos count en la misma tabla

Estas en el tema de Consulta con dos count en la misma tabla en el foro de Mysql en Foros del Web. Hola amigos, como estais Vereis tengo que contar primero un campo de una tabla y posteriormente contar usuarios que si pagaron de ese primer conteo, ...
  #1 (permalink)  
Antiguo 23/02/2011, 19:49
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 2 meses
Puntos: 4
Consulta con dos count en la misma tabla

Hola amigos, como estais

Vereis tengo que contar primero un campo de una tabla y posteriormente contar usuarios que si pagaron de ese primer conteo, para lo cual uso el siguiente codigo:

SELECT COUNT(1) Ncuota, (SELECT COUNT(2) pagado FROM cuotas_usuarios WHERE pagado = 'si' AND Ncuota = '43' AND Ngrupo = '1') FROM cuotas_usuarios WHERE Ncuota = '43' AND Ncofradia = '1'


Y esta funcionando la cosa es que a la hora de mostrar los resultados para mostrar los 'Ncuota que ha contado esta perfecto' pero para mostrar los que estan pagados en phpmyadmin me muestra toda la consulta como nombre del campo, entonces el problema es que no puedo mostrarlo posteriormente, puede ser que este mal plateada la consulta?

El objetivo de la misma es contar el campo 'Ncuota' y 'pagada' de la tabla cuotas_usuarios, a ver si alguien sabe que pude estar pasando.

Un saludo y gracias desde ya

Última edición por franjgg; 23/02/2011 a las 20:09
  #2 (permalink)  
Antiguo 24/02/2011, 02:17
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Consulta con dos count en la misma tabla

Si el unico problema es el nombre de la columna, puedes ponerla un alias con AS nombre

En cualquier caso, esa consulta es muy ineficiente, si me explicas exactamente que quieres la podemos intentar mejorar.
  #3 (permalink)  
Antiguo 24/02/2011, 02:39
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Consulta con dos count en la misma tabla

En primer lugar si defines un alias para la subconsulta saldrá como nombre del campo

SELECT COUNT(1) Ncuota, (SELECT COUNT(2) pagado FROM cuotas_usuarios WHERE pagado = 'si' AND Ncuota = '43' AND Ngrupo = '1') as NPagado FROM cuotas_usuarios WHERE Ncuota = '43' AND Ncofradia = '1'

En segundo lugar la consulta es mejorable, pero no entiendo una cosa

WHERE pagado = 'si' AND Ncuota = '43' AND Ngrupo = '1')
WHERE Ncuota = '43' AND Ncofradia = '1'

Por un lado estas contando las cuotas 43 pagadas del ngrupo=1 y por otro las cuotas 43 de Ncofradia=1 no parece el mismo grupo.

Salvando esa diferencia

Código MySQL:
Ver original
  1. SELECT Count(*) as Cuotas43,
  2.              SUM(IF(Pagado='Si',1,0)) as NPagado
  3. FROM cuotas_usuarios
  4. WHERE  Ncuota=43
  5. AND //Aqui debes definir el grupo lo de Ncofradia = '1' o Ngrupo = '1'

creo que será más eficiente.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #4 (permalink)  
Antiguo 24/02/2011, 06:08
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 2 meses
Puntos: 4
Respuesta: Consulta con dos count en la misma tabla

Hola amigos, gracias por vuestas respuestas.

Pues si como esperaba mi consulta no era la mas eficiente, he probado la consulta que me habeis sujerido y va perfecta, ya esta cambiada y funcionando.

Mil gracias alos dos amigos.

Etiquetas: count, dos, tablas
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:46.