Una cuestión más, que me he puesto a hacer pruebas y me sigue dando problemas el WHERE, tengo lo siguiente:
Código SQL:
Ver originalSELECT num,
SUM(IF(seccion = 1, (elemento1 + elemento2 + elemento3), 0) Seccion1,
SUM(IF(seccion = 2, (elemento1 + elemento2 + elemento3), 0) Seccion2,
SUM(IF(seccion = 3, (elemento1 + elemento2 + elemento3), 0) Seccion3,
SUM(elemento1 + elemento2 + elemento3) Total
FROM datos
WHERE elemento1>0 AND elemento2>0 AND elemento3>0
GROUP BY num
ORDER BY 5 DESC;
Si por ejemplo el num=1, sección=3, elemento3=0, al ser el elemento3=0, no debería aparecer el num=1 en la consulta, sin embargo aparece con el valor correspondiente de seccion1 y sección2 y en seccion3=0 y total=seccion1+seccion2, en lugar de directamente no aparecer como resultado el num=1.
Con num=1, sección=3, elemento3=0 la consulta me devuelve:
num seccion1 sección2 seccion3 total
1 45 30 0 75
2 27 19 22 68
En lugar de devolverme
num seccion1 sección2 seccion3 total
2 27 19 22 68