SQL Server - Filas repetidas

 
Vista:

Filas repetidas

Publicado por Damian (14 intervenciones) el 01/10/2008 22:46:32
Tengo una consulta con union el problema es que me trae las categorias repetidas y por mas que ponga distinct en cada select no tiene sentido ya que las categorias dan totales distintos, segun se traiga de pedidos o de facturacion y la idea es que si por ejemplo Ferreteria esta en las dos tablas(Pedidos y Facturacion) que me sume esos totales y no que me ponga 2 veces Ferreteria, la consulta la tengo asi:

Select C.Descripcion,round(sum(D.Total),2)[Total] from Categoria C,Articulos A,DetalleArticulo DA,Detalles D where C.CodCat=A.CodCat and A.CodArt=DA.CodArt and DA.CodDetArt=D.CodDetArt and D.IdFact in(select F.IdFact from Facturacion F where F.FechaHora Between convert(datetime,'16/09/2008',103) and convert(datetime,'30/09/2008',103)) group by C.Descripcion
union
Select C.Descripcion,round(sum(D.Total),2)[Total] from Categoria C,Articulos A,DetalleArticulo DA,Detalles D where C.CodCat=A.CodCat and A.CodArt=DA.CodArt and DA.CodDetArt=D.CodDetArt and D.IdPedido in(select P.IdPedido from Pedidos P where P.FechaEntrega Between convert(datetime,'16/09/2008',103) and convert(datetime,'30/09/2008',103)and P.Facturado='NO') group by C.Descripcion order by 2 desc

y me devuelve:

Descripcion Total

Aberturas 357.6
Pintureria 90
PVC 73
Ferreteria 71.76
Aberturas 60.7
Ferreteria 13.3
PVC 13
Electricidad 9.3
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:Filas repetidas

Publicado por Isaias (3308 intervenciones) el 02/10/2008 19:15:41
Pasa tu select (Con UNION) a una tabla temporal y despues haces el SUM con GROUP BY.

Utiliza siempre formato ANSI para los campos fecha (yyyymmdd hh:mm:ss, nnn) y no uses BETWEEN para su comparacion, utiliza >= y <=

where P.FechaEntrega >= '20080916' and P.FechaEntrega <= '20080930'
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