select departamentos.id, departamentos.departamento,
ventas.idCliente, clientes.nombre,
sum(ventas_movimientos.importe)-sum(cobranzas.importe) as saldo
from ventas_movimientos
inner join ventas
on ventas_movimientos.idventa = ventas.id
inner join clientes
on ventas.idCliente = Clientes.id
inner join cobranzas
on cobranzas.idCliente = Clientes.id
inner join departamentos
on clientes.idDepartamento = Departamentos.id
group by ventas.idcliente
order by Departamentos.departamento
-- where fecha>='2016-01-16' and fecha<='2016-01-19'sum(ventas_movimientos.importe)-sum(cobranzas.importe) as saldo
Lo que me arroja un resultado nulo.
Alguna sugerencia?
muchas gracias..
el problema está en esta linea:En mi opinión,le pondría la intersección entre ventas y cobranzas con el campo idcliente, en el inner join de cobranzas.
Saludos
The syntax for the GROUP BY clause in MySQL is:
SELECT expression1, expression2, ... expression_n,
aggregate_function (expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, ... expression_n;http://www.techonthenet.com/mysql/group_by.phpselect
departamentos.id
, departamentos.departamento
, ventas.idCliente
, clientes.nombre
, sum(ventas_movimientos.importe - ISNULL(cobranzas.importe,0)) as saldo
from ventas_movimientos
inner join ventas
on ventas_movimientos.idventa = ventas.id
inner join clientes
on ventas.idCliente = Clientes.id
inner join departamentos
on clientes.idDepartamento = Departamentos.id
left join cobranzas
on cobranzas.idCliente = Clientes.id
group by ventas.idcliente
order by Departamentos.departamento
where fecha>='2016-01-16' and fecha<='2016-01-19'