Ver Mensaje Individual
  #13 (permalink)  
Antiguo 14/12/2009, 21:39
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: 16 años, 5 meses
Puntos: 2658
Respuesta: ayuda con group by y sumar

Esta sería una opción:
Código MySQL:
Ver original
  1.    C.nombre, SUM(IF(c.fruta=1, 1, 0)) Manzanas,
  2.    SUM(IF(c.fruta=2, 1, 0)) Peras,
  3.    COUNT(c.fruta) `Total Frutas`
  4. FROM clientes C INNER JOIN frutas F ON C.fruta = F.clave
  5. WHERE F.clave IN (1, 2)
  6. GROUP BY c.nombre;
IF(condicion, verdadero, falso), devuelve verdadero si la condicion es TRUE, sino devuelve falso.
SUM() suma los valores indicados, donde el valore devuelto no sea NULL. En este caso va sumando 1 ó 0, contando las alternativas.
COUNT() cuenta todos los valores no NULL de un campo.
INNER JOIN devuelve sólo los registros que coincidan en la condición ON.
Los alias son precisamente eso: Alias de un nombre de base de datos, de tabla o de campo, puestos sea para cambiar el encabezado devuelto, para que sea útil, o bien para reducir la longitud de las sentencias haciendo más clara y comprensible la escritura. Originalmente requerían la cláusulas AS para indicar el alias. Actualmente es opcional. El sólo poner una palabra a continuación es suficiente.

Atención: Los alias de los campos no pueden ser usados para referirse a ellos en la cláusula WHERE.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)