Inicio > SQL Server > davidsc14 > Comparar ventas

Comparar ventas

Experto:
Usuario:
Fecha: 24/08/2009
Valoración: Categoría: SQL Server
22/08/2009
tcerda, usuario preguntando en SQL Server
Usuario
Muy buenas,
necesito una consulta que me pueda comparar las ventas de un periodo vs el ano anterior.
Ejemplo:
Factura_Detalle:
Factura, Articulo, Vendedor, Venta_actuales,Venta_Año_anterior
hasta ahora no he podido encontrar una consulta como esta, por favor le estaria muy pero muy agradecido en sumunistrame un script para el problema en custion.
gracias,
 
22/08/2009
tcerda, experto respondiendo en SQL Server
Experto
Supongamos que tienes el campo del año en tu tabla y te entran como valiables el año actual y el año anterior tienes que armar 2 consultas luego unirlas y despues nuevamante agruparlas.
select mitabla.articulo, mitabla.vendedor, sum(mitabla.venta_año_anterior) , sum(mitabla.ventas_año_actuales)
(select articulo, vendedor, sum(ventas) as Venta_Año_anterio , 0 as Venta_Año_actuales
from factura_detalle
where año = @Año_anterio
union all
select articulo, vendedor, 0 as Venta_Año_anterio , sum(ventas) as Venta_Año_actuales
from factura_detalle
where año = @Año_actual
) mitabla
group by mitabla.articulo, mitabla.vendedor
 la forma más facil es hacer la consulta con un group sin union y tu manejador de reporte pones el campo año en la seccion de columnas todos los reportadres lo manejan
 
24/08/2009
tcerda, usuario preguntando en SQL Server
Usuario
Gracias por tu respuesta, me gustaria aclararte algunos detalles para me puedas ayudar.
Tengo las siguientes tablas:
-Factura y Factura_Linea
de estas tablas necesito que cuando genere las ventas del mes actual, se realize otra consulta del mes actual pero del ano anterior. es como para comparar Agosto de este ano con Agosto del ano anterior.
Nota: la comparacion es vendedor,Articulo mes actual con vendedor,articulo mes ano anterior.
Yo actualmente tengo la siguiente consulta:
Select Factura.Vendedor,Factura_linea.Articulo,Factura_linea.Venta_Neta as   Venta_Mes_Actual, Venta_Mes_Anterior=(select Factura.Vendedor,Factura.Cliente,Factura_linea.Articulo,Factura_linea.Venta_Neta as Venta_Mes_Actual, Venta_Mes_Anterior from factura factura inner join factura_linea factura_linea on factura.factura=factura_linea.factura where factura.vendedor=factura.vendedor and factura_linea.articulo=factura_linea.articulo and factura.fecha>='2009-08-01' and factura.fecha<='2009-08-24')
from factura factura inner join factura_linea factura_linea on factura.factura=factura_linea.factura
where factura.vendedor='p01' and factura.fecha>='2009-08-01' and factura.fecha<='2009-08-24'
el problema aqui radica en que si no he vendido en este año articulo que se vendieron en año anterior, entonces la consulta no me trae esos datos, quedando asi el reporte incompleto.
muchas gracias por tu ayuda y espero que me hayas entendido.
A espera de tu respuesta muy atentamente,
Theo.
Enlaces patrocinados