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 originalCREATE TABLE #temp
(
sucursal VARCHAR(20),
venta INT,
fecha VARCHAR(20)
)
--sucursal venta Fecha
INSERT INTO #temp VALUES ('Morelia', 200 ,'20130501')
INSERT INTO #temp VALUES ('Morelia', 160 ,'20130502')
INSERT INTO #temp VALUES ('Morelia', 500 ,'20130503')
INSERT INTO #temp VALUES ('Gudalajara', 400 ,'20130504')
INSERT INTO #temp VALUES ('Gudalajara', 200 ,'20130505')
INSERT INTO #temp VALUES ('Gudalajara', 300 ,'20130506')
INSERT INTO #temp VALUES ('Tampico', 100 ,'20130507')
INSERT INTO #temp VALUES ('Tampico', 20 ,'20130508')
INSERT INTO #temp VALUES ('Tampico', 670 ,'20130509')
DECLARE @inicio datetime
DECLARE @mes INT
DECLARE @inicial INT
DECLARE @query Nvarchar(MAX)
DECLARE @cadena VARCHAR(MAX)
SET @inicio='20130501'
SET @inicial=DATEPART(mm,@inicio)
SET @mes=DATEPART(mm,@inicio)
SET @cadena=''
while @mes=@inicial
BEGIN
SELECT @cadena=@cadena + '[' + REPLACE(CONVERT(VARCHAR(20),@inicio,111),'/','') + '],'
SET @inicio=DATEADD(dd,1,@inicio)
SET @mes=DATEPART(mm,@inicio)
END
SET @cadena=SUBSTRING(@cadena,1,len(@cadena)-1)
SET @query='
select sucursal, ' + @cadena + '
from
(
select sucursal,venta,fecha from #temp
) as source
pivot
(
sum(venta) for fecha in (' + @cadena + ')
) as pvt'
EXEC sp_executesql @query