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
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


0