Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Reportes de Ventas con PIVOT

Estas en el tema de Reportes de Ventas con PIVOT en el foro de SQL Server en Foros del Web. Hola foreros tengo una pequeña duda, resulta que estoy, sacando totales de ventas por mes tengo diferentes tablas 1.-Ventas Campos IdVendedor, IdProducto, IdCliente, FechaVenta, Costo ...
  #1 (permalink)  
Antiguo 29/01/2012, 20:45
 
Fecha de Ingreso: agosto-2008
Mensajes: 142
Antigüedad: 15 años, 8 meses
Puntos: 2
Reportes de Ventas con PIVOT

Hola foreros
tengo una pequeña duda,
resulta que estoy, sacando totales de ventas por mes

tengo diferentes tablas
1.-Ventas
Campos
IdVendedor, IdProducto, IdCliente, FechaVenta, Costo
2.-Vendedor
Campos
IdVendedor, NickVendedor, NombreCompleto
3.-producto
IdProducto, DescProducto
4.-Clientes
IdCliente, NombreCliente

quiero tener como salida una tabla tipo excel con los siguientes campos
Vendedor, Producto, Cliente, Ene, Feb, Mar, Abr, May, Jun, jul, Ago, Sep,


utilizando un PIVOT

Logro obtener solamente

el IdVendedor los meses del año con la suma por mes de lo vendido

pero no logro metern la ralacion con un inner join, la tabla no me regresa los nombres
alguna idea???
de antemano gracias por su ayua
  #2 (permalink)  
Antiguo 30/01/2012, 12:18
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Reportes de Ventas con PIVOT

Veamos, este ejemplo te puede servir:

http://stackoverflow.com/questions/2...oft-sql-server
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 30/01/2012, 14:21
 
Fecha de Ingreso: agosto-2008
Mensajes: 142
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Reportes de Ventas con PIVOT

Gracias por la ayuda
  #4 (permalink)  
Antiguo 02/02/2012, 13:03
 
Fecha de Ingreso: agosto-2008
Mensajes: 142
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Reportes de Ventas con PIVOT

Solucionado en parte....

solo me falta sacar los totales por mes y por vendedor

Vendedor Producto Cliente Ene feb mar Abr Dic Total x Vendedor
xxx Mermela F Seven 0.00 0.00 0.00 0.00 0.00
xxx arroz Seven 0.00 0.00 0.00 0.00 0.00
sss Frijol don tino 0.00 0.00 0.00 0.00 0.00
rrr Aceite la esquina 0.00 0.00 0.00 0.00 0.00
uuu Pure don tino 0.00 0.00 0.00 0.00 0.00
oooo Pan blanco don tino 0.00 0.00 0.00 0.00 0.00
pppp Mermela F conchita 0.00 0.00 0.00 0.00 0.00
qqqq Frijol la esquina 0.00 0.00 0.00 0.00 0.00
Total x Mes

¿alguna idea?
  #5 (permalink)  
Antiguo 02/02/2012, 13:28
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Reportes de Ventas con PIVOT

Total x Vendedor es una simple suma y Total x Mes, puedes ser un COMPUTE en su Select
__________________
MCTS Isaias Islas
  #6 (permalink)  
Antiguo 02/02/2012, 13:34
 
Fecha de Ingreso: agosto-2008
Mensajes: 142
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Reportes de Ventas con PIVOT

ando un poco perdido de hecho le meti el compute pero me manda las filas en blanco

te pongo mi codigo

SELECT DescVend, DescProd, DescCliente, [01] AS Ene, [02] AS Feb, [03] AS Mar, [04] AS Abr, [05] AS May, [06] AS Jun,
[07] AS Jul, [08] AS Ago, [09] AS Sept, [10] AS Oct, [11] AS Nov, [12] AS Dic

FROM
(
SELECT a.DescVend, b.DescProd, c.DescCliente, DATEPART(mm, Inv.Fecha) AS OrderMes, Inv.Monto
FROM Inversiones AS Inv
INNER JOIN TabVend AS a ON Inv.IdVEND=a.IdVend
INNER JOIN TabProd AS b ON Inv.IdProd=b.IdProd
INNER JOIN TabClientes AS c ON Inv.IdCliente=c.IdCliente
WHERE DATEPART(yy, Inv.Fecha)=2011
) piv
PIVOT
(
SUM (Monto)
FOR OrderMes IN
([01], [02], [03], [04], [05], [06], [07], [08], [09], [10], [11], [12])
) AS chld
ORDER BY DescCliente
  #7 (permalink)  
Antiguo 02/02/2012, 13:37
 
Fecha de Ingreso: agosto-2008
Mensajes: 142
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Reportes de Ventas con PIVOT

SELECT DescVend, DescProd, DescCliente, [01] AS Ene, [02] AS Feb, [03] AS Mar, [04] AS Abr, [05] AS May, [06] AS Jun,
[07] AS Jul, [08] AS Ago, [09] AS Sept, [10] AS Oct, [11] AS Nov, [12] AS Dic

FROM
(
SELECT a.DescVend, b.DescProd, c.DescCliente, DATEPART(mm, Inv.Fecha) AS OrderMes, Inv.Monto
FROM Inversiones AS Inv
INNER JOIN TabVend AS a ON Inv.IdVEND=a.IdVend
INNER JOIN TabProd AS b ON Inv.IdProd=b.IdProd
INNER JOIN TabClientes AS c ON Inv.IdCliente=c.IdCliente
WHERE Inv.IdCanal=5 AND DATEPART(yy, Inv.Fecha)=2011
) piv
PIVOT
(
SUM (Monto)
FOR OrderMes IN
([01], [02], [03], [04], [05], [06], [07], [08], [09], [10], [11], [12])
) AS chld
ORDER BY DescCliente
  #8 (permalink)  
Antiguo 02/02/2012, 14:33
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Reportes de Ventas con PIVOT

despues de este dato: [12] AS Dic


Deberia haber algo como , SUM ([01] + [02]+[03]...............) AS Total
__________________
MCTS Isaias Islas
  #9 (permalink)  
Antiguo 02/02/2012, 17:54
 
Fecha de Ingreso: agosto-2008
Mensajes: 142
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Reportes de Ventas con PIVOT

Ya lo habia intentado de esa manera y no
  #10 (permalink)  
Antiguo 07/02/2012, 11:48
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Reportes de Ventas con PIVOT

Revisa en los LIBROS EN LINEA, los ejemplos de PIVOT, ve a San Google y coloca "SQL Server ejemplos de PIVOT"
__________________
MCTS Isaias Islas

Etiquetas: fecha, pivot, reportes, tabla, ventas, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:15.