Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

problema con Consulta de union

Estas en el tema de problema con Consulta de union en el foro de Bases de Datos General en Foros del Web. Hola, tengo un problema con una consulta. tengo tres tablas y mi problema surge al hacer una consulta con los totales de la tabla det_entradas ...
  #1 (permalink)  
Antiguo 30/05/2005, 02:59
 
Fecha de Ingreso: mayo-2005
Mensajes: 217
Antigüedad: 19 años
Puntos: 5
problema con Consulta de union

Hola, tengo un problema con una consulta. tengo tres tablas y mi problema surge al hacer una consulta con los

totales de la tabla det_entradas y det_comisiones, devido a que una de las tablas tiene menos filas me vuelve a sumar el resultado:

Tabla entradas
id_entrada---cliente
1---------------juan
2---------------martin
3---------------xxx

Tabla det_entradas
id_detalle id_entrada importe
22----------1------------ 5
33----------1------------ 10
33----------1------------ 5

Tabla det_comisiones
id_detalle--id_entrada importe
23-----------1------------- 50

43-----------1 -------------50

aqui me da como resultado de la consulta:

cliente----importe-----comision

juan-------20-----------200

y la comision me tendria que haber salido 100
  #2 (permalink)  
Antiguo 30/05/2005, 06:16
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
¿están bien los datos de det_entradas?, ¿existe clave primaria?, ¿puedes poner la consulta que ejecutas para saber donde puede estar mal?.
El tema está en que con los datos que has puesto, no hay ninguna fila de det_comisiones que cruce con det_entradas, con lo que el resultado de cruzar las dos tablas (por id_entrada e id_detalle) sería nulo.
Un saludo.
__________________
Estoy contagiado de Generación-I
  #3 (permalink)  
Antiguo 30/05/2005, 07:42
 
Fecha de Ingreso: mayo-2005
Mensajes: 217
Antigüedad: 19 años
Puntos: 5
Esta es la consulta que hice:
SELECT entradas.*,SUM(det_entradas.unidades * det_entradas.precio)as base,SUM(det_comisiones)as impcom
FROM entradas
LEFT JOIN det_entradas ON det_entradas.id_entrada=entradas.id_entrada
LEFT JOIN det_comisiones ON det_comisiones.id_entrada=entradas.id_entrada
GROUP BY tblentradas.id_entrada

quiero hacer es sumar de las tablas det_comisiones y det_entradas los totales
vinculados por el id_entrada de la tabla entradas. el problema esta que
cuando una de las dos tablas tiene mas registros me repite en la suma los registros:
entradas` (
`id_entradae` int(10) unsigned NOT NULL auto_increment,
`codigoentrada` int(10) unsigned default NULL,
...
PRIMARY KEY (`id_entrada`),
----------------
det_entradas` (
`id_detalle` int(10) unsigned NOT NULL auto_increment,
`id_entrada` int(10) unsigned default NULL,
`unidades` int(10) unsigned default NULL,
`precio` double(10,2) default NULL,
PRIMARY KEY (`id_detalle`),
-----------------
det_comisiones` (
`id_detalle` int(10) unsigned NOT NULL auto_increment,
`porcentajecom` double(10,2) default NULL,
PRIMARY KEY (`id_detalle`),
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:10.