Necesito ayuda, Tengo una semana completa tratando de hacr una consulta en Mysql uniedo 3 tablas atravez de inner Join y aunque he descubierto varias formas de composicion ya me doi por fastidiado y estresado.
Explico Tengo la Tabla Ventas, Gastos y Depositos las cuales relaciono mediante el campo fecha, nombre de farmacia, ya que no puedo relacionarlos mediante su id ya que las tablas pueden tener N registros relacionados.
Haho la sig consulta, utilizando tambien la fx Sum para sumar los campos de gastos y depositos pertenecientes a las ventas de la farmacia y con un rengo de fechas. que cumplan con la condicion.
Código MySQL:
Ver original ventas.fecha,
usuario_TM,
ventas_TM,
usuario_TV,
ventas_TV,
/*Utilizo los case ya que el valor puede ser nulo, tambien por que cada
registro se me multiplica por el numero de registros de la tabla a a
unir*/
id_deposito
)), (SUM(gasto
)/1)) gasto
)), (SUM(deposito
)/1))
ON ventas.fecha
=gastos.fecha
AND gastos.fecha
=depositos.fecha
WHERE ventas.farmacia
=EJEMPLO
' AND ventas.fecha between '2013-06-25' AND '2013-06-27'
AND gastos.farmacia=' EJEMPLO' AND gastos.fecha
between '2013-06-25' AND '2013-06-27'
AND depositos.farmacia=' EJEMPLO' AND depositos.fecha
between '2013-06-25' AND '2013-06-27'
GROUP BY ventas.fecha
ORDER BY ventas.fecha ASC;
Es una consulta algo larga, me funciona bien pero sola mente cuando hay 1 registro de cada tabla que cumple la condicion, si ingreso mas registros por ejemplo de gastos de ese dia y de esa farmacia se me altera o multiplica la suma de depositos. y no se por que??? tambien si no hay registros de la tabla por qjemplo depositos no me arroja nigun resultado de ventas y gastos ya que esta si contienen informacion... Alguien que me de una idea