Código MySQL:
Ver original fecha,
docprovee,
proveedor,
SUM(IF(codigo
<> 'IVA', costo_ent
,0)) AS Neto
, SUM(IF(codigo
= 'IVA',costo_ent
,0)) AS Iva
, SUM(costo_ent
) AS TotFact
, SUM((@IVA
/@nETO
)*100) AS tasa
td='EN'
Esto te devuelve valores nulos por dos razones:
1) No se pueden usar los alias de las columnas en el mismo SELECT que las crea.
2) En MySQL Iva y @IVA no son la misma cosa. Uno es el alias que le pones a la columna, y la otra es una variable de usuario. Y como todas las variables de usuario se deben incializar o de lo contrario su valor es NULL, te está devolviendo NULL.
Ahora bien, yendo a tu problema, a mi entender te estás complicando demasiado. Sería mucho más sencillo que hicieras así:
Código MySQL:
Ver original fecha,
docprovee,
proveedor,
Neto,
Iva,
TotFact,
fecha,
docprovee,
proveedor,
SUM(IF(codigo
<> 'IVA', costo_ent
,0)) Neto
, SUM(IF(codigo
= 'IVA',costo_ent
,0)) Iva
, td='EN'
A veces, lo extenso, simplifica.
Un tip adicional: la cláusula AS es obsoleta. Ya ni siquiera el Oracle 8i la usaba (y va por la versión 12), porque se eliminó del ANSI-SQL hace años. Solamente se conserva por compatibilidad cuando usas motores de bases de datos extremadamente viejos y obsoletos.