Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/06/2005, 01:13
Avatar de Vice
Vice
 
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 21 años, 5 meses
Puntos: 2
En la tabla det_comisiones no tienes id_entrada, ¿o es un error?.
De todas formas, a mi entender, tal como tienes definida la estructura de tus tablas, te faltaría una condición para cruzar det_entradas con det_comisiones, y es la igualdad del campo id_detalle.
La consulta que pones tiene varios errores: no se puede hacer la suma de una tabla, sino que se hace de un campo de una tabla.
Con la estructura que pones ahí, la consulta sería:
Código:
SELECT entradas.identrada,SUM(det_entradas.unidades * det_entradas.precio)as base,SUM(det_comisiones.porcentajecom)as impcom
FROM entradas
LEFT JOIN det_entradas ON det_entradas.id_entrada=entradas.id_entrada
LEFT JOIN det_comisiones ON det_comisiones.id_detalle=det_entradas.id_detalle
GROUP BY tblentradas.id_entrada
Te lo pongo con el left join igual que lo has puesto, pero eso lo único que hará será hacerte aparecer entradas.id_entradas que no tengan datos en det_entradas, con lo que tienes que plantearte si realmente lo necesitas.
Evidentemente: si una entrada.identrada tiene más de un registro en la tabla det_entradas te los va a sumar, pero es así como tiene que funcionar, ¿sino para que hacer la suma?.
El problema real lo tienes si la relación det_entradas con det_comisiones no es unívoca (1 a 1), porque ahí es donde se producirían las repeticiones. Fíjate que si un detalle tiene más de una comisión, aparecerá repetida y, por lo tanto, la sumará dos veces.

Por cierto, en el otro post con el mismo tema no contestaste a las preguntas que te hice.

Un saludo.
Un saludo.
__________________
Estoy contagiado de Generación-I

Última edición por Vice; 01/06/2005 a las 04:34