Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/09/2014, 12:15
yosoloyo
 
Fecha de Ingreso: mayo-2008
Mensajes: 156
Antigüedad: 16 años
Puntos: 0
Sumar campos que no sean NULL en una consulta

Buenas !!

Pues no se si es posible hacer lo que quiero hacer, de momento no lo consigo. Se que el ejemplo que voy a poner no es muy práctico, pero para lo que quiero hacer en el fondo, me serviría como ejemplo. Repito xD, de antemano se que no es el mejor ejemplo porque me vais a decir que para eso se crea un indice y luego se haría un count, pero no es en definitiva lo que quiero hacer y pongo por tanto un ejemplo tonto.

Supongamos una tabla:

Código MySQL:
Ver original
  1. Nombres: nombrereal, apodo1, apodo2, apodo3

Imaginemos que nombrereal es la KEY y que por tanto es además única, y no puede ser NULL.
Luego los campos de apodo1, apodo2 y apodo3, si pueden ser NULL.

Mi intención es si por ejemplo:

Código MySQL:
Ver original
  1. nombrereal-apodo1-apodo2-apodo3
  2. ----------------------------------------------
  3. Jose-pepe-pepito-NULL
  4. Rafael-rafa-fali-falete

Mi intención es que de como resultado lo siguiente:

Jose 2
Rafa 3

Es decir hacer una suma de los campos que no sean null y sumarlos en la propia consulta.

Con IFNULL, si es nulo como es normal si puedo poner un cero, o al contrario, pero con un IF, realmente no lo consigo y me da uno por defecto siempre, esté o no el campo vacío (NULL)

Estoy haciendo lo siguiente:

Código MySQL:
Ver original
  1. Select nombrereal, IF(apodo1=NULL , 0, 1) as ap1, IF(apodo2=NULL , 0, 1) as ap2, IF(apodo3=NULL , 0, 1) as ap3
  2. FROM nombres

Y terminar de completar la consulta asi:

Código MySQL:
Ver original
  1. Select nombrereal, (IF(apodo1=NULL , 0, 1) + IF(apodo2=NULL , 0, 1) + IF(apodo3=NULL , 0, 1)) as suma
  2. FROM nombres


Espero vuestra ayuda ante esta tontería que os expongo

Gracias de antemano como siempre !