Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/11/2014, 16:53
nlaitan
 
Fecha de Ingreso: noviembre-2014
Mensajes: 1
Antigüedad: 10 años
Puntos: 0
Pregunta INNER JOIN multiplica resultados

Hola, que tal. Es mi primera vez en un foro como estos, vi algunas soluciones a mi problema pero no estoy dando en la tecla con la real solucion a mi problema.

Lo que necesito es que agrupando por fecha, obtenga la cantidad de kilos que envie.
Código SQL:
Ver original
  1. SELECT DISTINCT
  2.         COUNT(PM.numero) AS cantNumero,
  3.         TE.fecha AS fecha,
  4.         (SUM(DE.peso_unitario) * SUM(AP.cantidad)) AS SumaTotal
  5.  
  6. FROM pedido_modelo PM
  7. INNER JOIN turno_entrega TE ON PM.turno_entrega_id=TE.id
  8. INNER JOIN alimento_pedido AP ON PM.numero=AP.pedido_numero
  9. INNER JOIN detalle_alimento DE ON AP.detalle_alimento_id=DE.id_detallealimento
  10. GROUP BY fecha

Hice una prueba en papel con los resultados que tendria que darme la consulta, pero descubri que me multiplica resultados, es decir, tengo un problema con esta parte en especial:
Código SQL:
Ver original
  1. INNER JOIN alimento_pedido AP ON PM.numero=AP.pedido_numero
En donde yo, por cada pedido (de la tabla 'pedido_modelo') puedo tener varios alimentos (de la tabla 'alimento_pedido').

Para orientar un poco, cuando hago "COUNT(PM.numero)" me tendria que devolver la cantidad de pedidos que tuve en x fecha, sin embargo me devuelve la multiplicacion del numero de pedidos por el numero de alimentos que encargue en esa fecha.

Por ejemplo, pongo fecha primero y pedidos del dia despues.
-01/01/2014
-Tengo 3 pedidos, con 2 alimentos encargados c/u, COUNT(PM.numero) me devuelve 6 cuando deberia devolverme 3.
-02/02/2014
-Tengo 1 pedido, con 3 alimentos encargados, COUNT(PM.numero) me devuelve 3 cuando deberia devolverme 1.

Desde ya muchas gracias, agradeceria una pronta respuesta.