Tsql. Mostrar datos de venta y compra de una marca en una misma Sql.
Publicado por Cabusia (1 intervención) el 21/02/2012 19:02:55
Hola
Tengo que mostra las ventas y compras de una marca en difentes delegaciones
La siguien consulta me muestra los datos, sin embargo me surge un problema.
La marca en concreto='WIE' solo se ha vendido en 1 delegacion pero se ha comprado en 2 delegaciones.
A la hora de mostrar los datos me muestra el valor de ventas 2 veces:
ventas compras
WIE GI BERGARA 28577.18880000000 WIE GI BERGARA 19367.49600000000
WIE GI BERGARA 28577.18880000000 WIE GI TXIRRITA -628.80400000000
Lo que me tuviera que mostrar:
ventas compras
WIE GI BERGARA 28577.18880000000 WIE GI BERGARA 19367.49600000000
WIE GI BERGARA 0 WIE GI TXIRRITA -628.80400000000
Adjunto la consulta:
Gracias.
select v.*, c.*
from (SELECT SUBSTRING(l.CodigoArticulo,1,3) Marca,CodigoEmpresa, CodigoDelegacion ,SUM(L.TotalLinea*l.Cantidad ) AS Ventas
from AlbaranesVentasLineas l
join AlbaranesVentasCabecera c on l.CodigoAlbaran=c.codigo
WHERE (CodigoEmpresa = 'GI') AND (Fecha >= '01-01-2012') AND (Fecha <= DATEADD(HH, 23, DATEADD(MI, 59, DATEADD(SS, 59, '31-01-2012')))) AND SUBSTRING(l.CodigoArticulo,1,3)='WIE'
GROUP BY SUBSTRING(l.CodigoArticulo,1,3),CodigoEmpresa, CodigoDelegacion
) v
join (SELECT SUBSTRING(l.CodigoArticulo,1,3) Marca,CodigoEmpresa, c.CodigoDelegacion ,SUM(L.TotalCompra*l.Cantidad ) AS Compras
from AlbaranesComprasLineas l
join AlbaranescomprasCabecera c on l.CodigoAlbaran=c.codigo
WHERE (CodigoEmpresa = 'GI') AND (Fecha >= '01-01-2012') AND (Fecha <= DATEADD(HH, 23, DATEADD(MI, 59, DATEADD(SS, 59, '31-01-2012')))) AND SUBSTRING(l.CodigoArticulo,1,3)='WIE'
GROUP BY SUBSTRING(l.CodigoArticulo,1,3),CodigoEmpresa, c.CodigoDelegacion
) c on v.Marca=c.Marca
order by v.Marca, v.CodigoDelegacion
Tengo que mostra las ventas y compras de una marca en difentes delegaciones
La siguien consulta me muestra los datos, sin embargo me surge un problema.
La marca en concreto='WIE' solo se ha vendido en 1 delegacion pero se ha comprado en 2 delegaciones.
A la hora de mostrar los datos me muestra el valor de ventas 2 veces:
ventas compras
WIE GI BERGARA 28577.18880000000 WIE GI BERGARA 19367.49600000000
WIE GI BERGARA 28577.18880000000 WIE GI TXIRRITA -628.80400000000
Lo que me tuviera que mostrar:
ventas compras
WIE GI BERGARA 28577.18880000000 WIE GI BERGARA 19367.49600000000
WIE GI BERGARA 0 WIE GI TXIRRITA -628.80400000000
Adjunto la consulta:
Gracias.
select v.*, c.*
from (SELECT SUBSTRING(l.CodigoArticulo,1,3) Marca,CodigoEmpresa, CodigoDelegacion ,SUM(L.TotalLinea*l.Cantidad ) AS Ventas
from AlbaranesVentasLineas l
join AlbaranesVentasCabecera c on l.CodigoAlbaran=c.codigo
WHERE (CodigoEmpresa = 'GI') AND (Fecha >= '01-01-2012') AND (Fecha <= DATEADD(HH, 23, DATEADD(MI, 59, DATEADD(SS, 59, '31-01-2012')))) AND SUBSTRING(l.CodigoArticulo,1,3)='WIE'
GROUP BY SUBSTRING(l.CodigoArticulo,1,3),CodigoEmpresa, CodigoDelegacion
) v
join (SELECT SUBSTRING(l.CodigoArticulo,1,3) Marca,CodigoEmpresa, c.CodigoDelegacion ,SUM(L.TotalCompra*l.Cantidad ) AS Compras
from AlbaranesComprasLineas l
join AlbaranescomprasCabecera c on l.CodigoAlbaran=c.codigo
WHERE (CodigoEmpresa = 'GI') AND (Fecha >= '01-01-2012') AND (Fecha <= DATEADD(HH, 23, DATEADD(MI, 59, DATEADD(SS, 59, '31-01-2012')))) AND SUBSTRING(l.CodigoArticulo,1,3)='WIE'
GROUP BY SUBSTRING(l.CodigoArticulo,1,3),CodigoEmpresa, c.CodigoDelegacion
) c on v.Marca=c.Marca
order by v.Marca, v.CodigoDelegacion
Valora esta pregunta


0