Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/11/2009, 01:46
sencev
 
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 29
Antigüedad: 16 años, 7 meses
Puntos: 0
Sumar o restar campos generados

Buenas gente, estoy haciendo una query y me tope con este problema:

Tengo una tabla de productos, una de ordenes y una de pagos.

La relacion es 1 orden -> varios productos, con varios pagos (mini pagos) POR ORDEN.

Código sql:
Ver original
  1. SELECT ordenes.id
  2.      , ( SUM( productos.valor ) - productos.iva_total ) AS total
  3.      , ( SELECT SUM( pagos.importe_total ) FROM pagos WHERE ordenes_id = ordenes.id GROUP BY ordenes_id ) AS pagado
  4.   FROM ordenes
  5. INNER JOIN productos,, con su tabla "ordenes_productos", etc
  6. GROUP BY ordenes.id

Esta query es parte de un listado, y como se le aplican filtros que modifican el SQL dinamicamente, necesito tener que hacer esto por SQL si o si..

Entonces:
Como poria obtener el resultado de total - pagado? para hacer una condicion por ejemlo

Código sql:
Ver original
  1. WHERE ( total - pagado ) > 0 #Que traiga solo las ordenes que tienen saldo pendiente

Intente haciendo la cuenta ahi mismo, asi:
Código sql:
Ver original
  1. (( SUM( productos.valor ) - productos.iva_total ) - ( SELECT SUM( pagos.importe_total ) FROM pagos WHERE ordenes_id = ordenes.id GROUP BY ordenes_id )) AS diferencia

Pero me trae el campo null, por lo que deduzco que no es capaz de hacer esa operacion..

Ya intente todo lo que se me ocurrio pero nada funciono jaja..
alguna idea ??

Saludos