SQL - eliminar duplicados en inner join

 
Vista:

eliminar duplicados en inner join

Publicado por Sergio (2 intervenciones) el 09/11/2006 18:27:43
Tengo dos tablas de una base de datos de gastos tengo gastos de empleados para distintos eventos, los gastos estan clasificados en distintas tablas, una para gastos de alojamiento, otra para transporte, despues tengo una tabla para los eventos y otra para empleados, mi proposito es mostrar una lista en la que salgan los gastos de cada empleado en cada evento con una sola consulta, pero al hacerlo me salen algunos datos repetidos, la consulta que puesto es la siguiente:

SELECT GastosAlojamiento.gastos, GastosAlojamiento.concepto, GastosRepresentacion.gastos AS Expr1, GastosRepresentacion.concepto AS Expr2,
GastosRepresentacion.codigo, GastosAlojamiento.codigo AS Expr3
FROM Empleados INNER JOIN
GastosAlojamiento ON Empleados.codigoEm = GastosAlojamiento.codigoEm INNER JOIN
Eventos ON GastosAlojamiento.codigoEv = Eventos.codigoEv INNER JOIN
GastosRepresentacion ON Empleados.codigoEm = GastosRepresentacion.codigoEm AND Eventos.codigoEv = GastosRepresentacion.codigoEv

100 hotel hesperia 421,2 Ramo de flores 1 2
132 ninguno 60,35 Ramo de flores 2 5
132 ninguno 123 cena de gala 3 5

Como podeis ver el evento con concepto ninguno se repite y es esto lo que quiero evitar, ya que quiero que se muestre cada gasto una sola vez
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:eliminar duplicados en inner join

Publicado por Juan (23 intervenciones) el 09/11/2006 19:17:06
SELECT GastosAlojamiento.gastos, GastosAlojamiento.concepto,
sum(GastosRepresentacion.gastos) AS Expr1,
sum(GastosRepresentacion.concepto) AS Expr2,
GastosRepresentacion.codigo, GastosAlojamiento.codigo AS Expr3
FROM Empleados INNER JOIN
GastosAlojamiento ON Empleados.codigoEm = GastosAlojamiento.codigoEm INNER JOIN
Eventos ON GastosAlojamiento.codigoEv = Eventos.codigoEv INNER JOIN
GastosRepresentacion ON Empleados.codigoEm = GastosRepresentacion.codigoEm AND Eventos.codigoEv = GastosRepresentacion.codigoEv
group by GastosAlojamiento.gastos, GastosAlojamiento.concepto

la idea es que sumes los gatos que esten en un mismo gasto y concepto.
Prueba a ver
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:eliminar duplicados en inner join

Publicado por sergio (2 intervenciones) el 09/11/2006 19:23:44
El caso es que no quiero sumar los gastos del mismo concepto siempre ya que si sumase los gastos que tienen el mismo concepto podria ocurrir que se sumasen dos gastos con el mismo concepto y con distinto empleado,
lo que yo quiero es eliminar los duplicados que se producen al obtener los resultados si te fijas el mismo gasto se duplica, el gasto de alojamiento con codigo 5 concepto ninguno sale dos veces, esto puede ocasionar que si yo hago un sumatorio se repite
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar