Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/09/2014, 06:28
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: Sumar campos que no sean NULL en una consulta

Cita:
nombrereal-apodo1-apodo2-apodo3
----------------------------------------------
Jose-pepe-pepito-NULL
Rafael-rafa-fali-falete
Por lo pronto, eso está desnormalizado. No debes poner N campos del mismo dominio (apodos) en una tabla, sino en todo caso crear una tabla dependiente que conserve los apodos. Eso sería lo correcto, y te resolvería el problema con muy poco esfuerzo.

Cita:
persona(idpersona, nombre, ...)
apodo(idpersona, apodo)
La PK de la segunda tabla estaría compuesta por ambos campos y la consulta sería:

Código MySQL:
Ver original
  1. SELECT P.nombre, COUNT(A.idpersona) CantApodos
  2. FROM persona P LEFT JOIN apodo A ON P.idpersona = A.idpersona
  3. WHERE TRUE OR a.idpersona IS NULL
  4. GROUP BY P.idpersona
Esta query devolverá incluso cero donde la persona no tenga apodos registrados, así como no limita la cantidad de apodos a ninguna cantidad predeterminada.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)