Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/02/2011, 02:39
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 11 meses
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.