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
SELECT ordenes.id , ( SUM( productos.valor ) - productos.iva_total ) AS total , ( SELECT SUM( pagos.importe_total ) FROM pagos WHERE ordenes_id = ordenes.id GROUP BY ordenes_id ) AS pagado FROM ordenes INNER JOIN productos,, con su tabla "ordenes_productos", etc 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
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
(( 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