Pues lo haces de la forma más simple de todas.... el where debe considerar que cada uno de los campos debe ser mayor que cero...
No le busques vueltas, ni intentes atajos. No estás usando un lenguaje de programación, estás utilizando SQL, y el SQL es un lenguaje imperativo. Eso siginfica que paa que algo se haga, debes indicarlo expresamente. La base de datos no puede inferir ni adivinar.
¿Qué condiciones deben cumplir los regitros? ¿Los tres campos deben tener un valor mayor a cero,?
Bueno, entonces dilo:
Código SQL:
Ver originalSELECT *, SUM(elemento1 + elemento2 + elemento3) total
FROM datos
WHERE elemento1>0 AND elemento2>0 AND elemento3>0
GROUP BY num
ORDER BY total;
... pero esto ya lo estabas haciendo.
¿Qué problema te trae?
Postea los datos que hay en la tabla, lo que te devuelve, y un ejemplo de lo que tu
supones que debería devolver.