Hola rafaelg21:
Tu consulta es correcta (aunque no es necesario que pongas la palabra reservada AS para poner el Alias). Checa este script
Código MySQL:
Ver originalQuery OK, 0 rows affected (0.11 sec)
-> (1, 'AAAAAA', 306.25),
-> (2, 'BBBBBB', 0),
-> (3, 'CCCCC', 25.05),
-> (4, 'DDDDD', 0),
-> (5, 'EEEEEE', 150.25),
-> (7, 'FFFFFFF', 1);
Query OK, 6 rows affected (0.03 sec)
+------+----------+------------+
| ID | PRODUCTO | inv_totexi |
+------+----------+------------+
| 1 | AAAAAA | 306.25 |
| 2 | BBBBBB | 0 |
| 3 | CCCCC | 25.05 |
| 4 | DDDDD | 0 |
| 5 | EEEEEE | 150.25 |
| 7 | FFFFFFF | 1 |
+------+----------+------------+
+------+----------+------------+
| ID | PRODUCTO | inv_totexi |
+------+----------+------------+
| 1 | AAAAAA | 306.25 |
| 3 | CCCCC | 25.05 |
| 5 | EEEEEE | 150.25 |
| 7 | FFFFFFF | 1 |
+------+----------+------------+
Como verás filtra perfectamente aquellos precios iguales a cero...
Hace tiempo me pasó un caso semejante, pero era por un problema con JSP. un reporte estaba mostrando un -0 como resultado, lo cual es una completa aberración, después de revisar la base de datos encontramos que el registro tenía un -1.0E-10 (es decir -0.0000000001) pero la manera en como estábamos recuperando el dato lo redondeaba a cero pero seguía tomando el valor negativo... no sé si este sea un caso parecido es decir si el resultado lo muestras desde una página o programa o directamente en la consola de MySQL. Verifica si en tu tabla tienes efectivamente un 0, o un valor muy pequeño, pero mayor a cero.
Esto es lo único que se me ocurre que pueda estar pasando, no sé si algún otro forista tenga algo más que aportar.
Saludos
Leo.