Я так старался понять, как создать сводную таблицу в SQL, но я не могу это сделать!SQL Pivot Table dynamic
У меня есть следующие столбцы:
link_id route_section date_1 StartHour AvJT data_source
....... ............. ....... ........... ...... ............
С 600000 строк данных.
Мне нужны они в следующей сводной таблице;
date_1
StartHour как заголовки столбцовlink_id
в строке заголовкаAvJT
как данные- с
data_source
= '1' в качестве фильтра.
PIVOT ТАБЛИЦА
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
мне удалось получить следующий код, это работает, но только дает мне дата_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
Спасибо за любую помощь,
Генри
Можете ли вы предоставить ссылку на то, где она была разрешена в другом месте? – chridam
Я думаю, что это - http://stackoverflow.com/questions/10404348/sql-server-dynamic-pivot-query – hc91
Смотрите это сообщение: http://sqlhints.com/2014/03/18/dynamic-pivot-in -sql-server/ –