Динамическая таблица SQL
Я так старался понять, как создать сводную таблицу в SQL, но я не могу с этим справиться!
У меня есть следующие столбцы:
link_id route_section date_1 StartHour AvJT data_source
....... ............. ....... ........... ...... ............
С 600 000 строк данных.
Я нуждаюсь в них в следующей сводной таблице;
date_1
StartHour как заголовки столбцовlink_id
как заголовок строкиAvJT
как данныесdata_source
= '1' в качестве фильтра.PIVOT TABLE
Link_ID
date_1 StartHour 00001a 000002a 000003a 000004a
20/01/2014 8 456 4657 556 46576
21/01/2014 8 511 4725 601 52154
22/01/2014 8 468 4587 458 47585
23/01/2014 8 456 4657 556 46576
24/01/2014 8 456 4657 556 46576
25/01/2014 8 456 4657 556 46576
26/01/2014 8 456 4657 556 46576
Мне удалось получить следующий код, это работает, но только дает мне date_1 в качестве заголовка столбца, а не StartHour дополнительно, или с фильтром как date_source = '1'.
Use [C1_20132014]
DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
DECLARE @ColumnName AS NVARCHAR(MAX)
--Get distinct values of the PIVOT Column
SELECT @ColumnName= ISNULL(@ColumnName + ',','')
+ QUOTENAME(Link_ID)
FROM (SELECT DISTINCT Link_ID FROM C1_May_Routes) AS Link_ID
--Prepare the PIVOT query using the dynamic
SET @DynamicPivotQuery =
N'SELECT Date_1, ' + @ColumnName + '
FROM C1_May_Routes
PIVOT(SUM(AvJT)
FOR Link_ID IN (' + @ColumnName + ')) AS PVTTable'
--Execute the Dynamic Pivot Query
EXEC sp_executesql @DynamicPivotQuery
Спасибо за любую помощь,
Генри