Código SQL:
Ver originalCREATE TABLE #temp(
ciudad VARCHAR(20),
turistas INT,
fecha datetime
)
INSERT INTO #temp VALUES ('ciudad1',10,'03-10-2013')
INSERT INTO #temp VALUES ('ciudad1',12,'03-10-2013')
INSERT INTO #temp VALUES ('ciudad2',11,'03-10-2013')
INSERT INTO #temp VALUES ('ciudad3',09,'03-10-2013')
INSERT INTO #temp VALUES ('ciudad1',01,'03-10-2013')
INSERT INTO #temp VALUES ('ciudad2',08,'03-11-2013')
INSERT INTO #temp VALUES ('ciudad4',15,'03-11-2013')
INSERT INTO #temp VALUES ('ciudad1',11,'03-12-2013')
INSERT INTO #temp VALUES ('ciudad2',02,'03-12-2013')
INSERT INTO #temp VALUES ('ciudad3',17,'03-12-2013')
INSERT INTO #temp VALUES ('ciudad5',10,'03-12-2013')
--delete from #temp
--select datepart(mm,fecha) from #temp
SELECT t1.ciudad,t1.conteoTuristas AS año,t2.conteoturistas AS mes,t3.conteoTuristas AS dia
FROM
(SELECT DISTINCT(ciudad), SUM(turistas) AS conteoTuristas FROM #temp WHERE DATEPART(yy,fecha)=2013 GROUP BY ciudad)t1
LEFT JOIN (SELECT DISTINCT(ciudad), SUM(turistas) AS conteoTuristas FROM #temp WHERE DATEPART(mm,fecha)=3 GROUP BY ciudad) AS t2 ON (t1.ciudad=t2.ciudad)
LEFT JOIN(SELECT DISTINCT(ciudad), SUM(turistas) AS conteoTuristas FROM #temp WHERE fecha='03-10-2013' GROUP BY ciudad) t3 ON (t2.ciudad=t3.ciudad)
Con esto obtienes lo siguiente:
ciudad año mes dia
-------------------- ----------- ----------- -----------
ciudad1 34 34 23
ciudad2 21 21 11
ciudad3 26 26 9
ciudad4 15 15 NULL
ciudad5 10 10 NULL
saludos!