Ver Mensaje Individual
  #10 (permalink)  
Antiguo 28/05/2013, 16:24
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: De filas a columnas

si tu informacion no esta en el formato, no queda de otra mas que formatearlo a mano...podrias hacer un query dinamico que te arme el query dependiendo los dias del mes.....pero eso ya te lo dejo a ti jejejeje....Que diablos ahi esta el query :P


Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. sucursal VARCHAR(20),
  4. venta INT,
  5. fecha VARCHAR(20)
  6. )
  7. --sucursal venta Fecha
  8. INSERT INTO #temp VALUES ('Morelia', 200 ,'20130501')
  9. INSERT INTO #temp VALUES ('Morelia', 160 ,'20130502')
  10. INSERT INTO #temp VALUES ('Morelia', 500 ,'20130503')
  11. INSERT INTO #temp VALUES ('Gudalajara', 400 ,'20130504')
  12. INSERT INTO #temp VALUES ('Gudalajara', 200 ,'20130505')
  13. INSERT INTO #temp VALUES ('Gudalajara', 300 ,'20130506')
  14. INSERT INTO #temp VALUES ('Tampico', 100 ,'20130507')
  15. INSERT INTO #temp VALUES ('Tampico', 20 ,'20130508')
  16. INSERT INTO #temp VALUES ('Tampico', 670 ,'20130509')
  17.  
  18. DECLARE @inicio datetime
  19. DECLARE @mes INT
  20. DECLARE @inicial INT
  21. DECLARE @query Nvarchar(MAX)
  22. DECLARE @cadena VARCHAR(MAX)
  23. SET @inicio='20130501'
  24. SET @inicial=DATEPART(mm,@inicio)
  25. SET @mes=DATEPART(mm,@inicio)
  26. SET @cadena=''
  27.  
  28. while @mes=@inicial
  29. BEGIN
  30.  
  31.     SELECT @cadena=@cadena + '[' + REPLACE(CONVERT(VARCHAR(20),@inicio,111),'/','') + '],'
  32. SET  @inicio=DATEADD(dd,1,@inicio)
  33. SET @mes=DATEPART(mm,@inicio)
  34. END
  35.  
  36. SET @cadena=SUBSTRING(@cadena,1,len(@cadena)-1)
  37. SET @query='
  38. select sucursal, ' + @cadena  + '
  39. from
  40. (
  41.   select sucursal,venta,fecha from #temp
  42. ) as source
  43. pivot
  44. (
  45.  sum(venta) for fecha in (' + @cadena + ')
  46. ) as pvt'
  47. EXEC sp_executesql @query
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Última edición por Libras; 28/05/2013 a las 16:37