Tabla dinámica de SQL dinámica

He intentado tanto entender cómo crear una tabla dinámica en SQL, ¡pero no puedo administrarla!

Tengo las siguientes columnas:

link_id   route_section   date_1    StartHour     AvJT    data_source
.......   .............  .......   ...........   ......  ............

Con 600,000 filas de datos.

Los necesito en la siguiente tabla dinámica;

date_1 StartHour como encabezados de columnalink_id como el encabezado de la filaAvJT como los datoscondata_source = '1' como filtro.

TABLA DINÁMICA

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

Logré obtener el siguiente código, esto funciona pero solo me da date_1 como encabezado de columna y no StartHour adicionalmente, o con el filtro como 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

Gracias por cualquier ayuda,

Enrique

Respuestas a la pregunta(2)

Su respuesta a la pregunta