por meses porque solo son 12 meses, si quieres presentar 31 columnas es tu "perro y tu lo bañas" jajajaja, es aplicar el mismo procedimiento con pivot pero usando tus columnas :)
asi no te sirve:
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')
SELECT sucursal,[20130501],[20130502],[20130503],[20130504],[20130505],[20130506],[20130507],[20130508],[20130509]
FROM
(
SELECT sucursal,venta,fecha FROM #temp
) AS SOURCE
pivot
(
SUM(venta) FOR fecha IN ([20130501],[20130502],[20130503],[20130504],[20130505],[20130506],[20130507],[20130508],[20130509])
) AS pvt