Cita: Pero no funciona para los otros saldo
Por regla general de todos los DBMS (Oracle incluido), no puedes usar un
alias como origen de datos dentro del mismo SELECT donde se crea, como tampoco lo puedes usar en el WHERE.
Tienes que usar funciones de agrupamiento.
Dale una leida a este link para aclarar mas o menos por donde tienes que ir:
http://www.oracle-base.com/articles/...uping-sets.php
Lo que si puedo decirte es que ese diseño de tablas es totalmente inadecuado para realizar se tipo de consultas. Muestra un diseño de base de datos muy ineficiente...
Si tienes N saldos, que se relacionan con N productos, los saldos pasan a ser una tabla relacional, y cada entrada de esa tabla corresponde a un mes determinado, para un producto determinado. Pero no se crea una tabla con doce campos.... Eso no está bien.