Tablas dinamicas
Publicado por sergio (59 intervenciones) el 12/04/2015 16:28:35
tengo la siguiente consulta
funciona correctamente
La pregunta es la siguiente, com puedo haver para realizar uun SP_COLUMNS de la tabla resultado, ya que es creada dinamicamente
desde ya gracias
DECLARE @PivotColumnHeaders VARCHAR(MAX), @Start varchar(10), @End varchar(10)
--SET @Start = cast(DATEPART(Year,DateADD(Month,-13,GetDate())) as varchar(10)) + right(REPLICATE('0',2) + cast(DATEPART(Month,DateADD(Month,-13,GetDate())) as varchar(10)),2)
--SET @End = cast(DATEPART(Year,DateADD(Month,-1,GetDate())) as varchar(10)) + right(REPLICATE('0',2) + cast(DATEPART(Month,DateADD(Month,-1,GetDate())) as varchar(10)),2)
-- Setea los rangos de fecha
SET @Start = '20150401'
SET @End = '20060604'
SELECT @PivotColumnHeaders =
COALESCE(
@PivotColumnHeaders + ',[' + cast([Fecha] as varchar) + ']',
'[' + cast([Fecha] as varchar)+ ']'
)
FROM turnos
WHERE [Fecha]>=@start
Group By [Fecha]
DECLARE @PivotTableSQL NVARCHAR(MAX)
SET @PivotTableSQL = N'
SELECT Hora, ' + @PivotColumnHeaders + '
FROM (
SELECT
miagenda.Nombre,
turnos.Fecha,
turnos.hora
FROM turnos left join miagenda on turnos.codigoagenda=miagenda.codigo
) AS PivotData
PIVOT (
min(nombre)
FOR [Fecha] IN (
' + @PivotColumnHeaders + '
)
) AS PivotTable'
EXECUTE sp_executesql @PivotTableSQL
funciona correctamente
La pregunta es la siguiente, com puedo haver para realizar uun SP_COLUMNS de la tabla resultado, ya que es creada dinamicamente
desde ya gracias
DECLARE @PivotColumnHeaders VARCHAR(MAX), @Start varchar(10), @End varchar(10)
--SET @Start = cast(DATEPART(Year,DateADD(Month,-13,GetDate())) as varchar(10)) + right(REPLICATE('0',2) + cast(DATEPART(Month,DateADD(Month,-13,GetDate())) as varchar(10)),2)
--SET @End = cast(DATEPART(Year,DateADD(Month,-1,GetDate())) as varchar(10)) + right(REPLICATE('0',2) + cast(DATEPART(Month,DateADD(Month,-1,GetDate())) as varchar(10)),2)
-- Setea los rangos de fecha
SET @Start = '20150401'
SET @End = '20060604'
SELECT @PivotColumnHeaders =
COALESCE(
@PivotColumnHeaders + ',[' + cast([Fecha] as varchar) + ']',
'[' + cast([Fecha] as varchar)+ ']'
)
FROM turnos
WHERE [Fecha]>=@start
Group By [Fecha]
DECLARE @PivotTableSQL NVARCHAR(MAX)
SET @PivotTableSQL = N'
SELECT Hora, ' + @PivotColumnHeaders + '
FROM (
SELECT
miagenda.Nombre,
turnos.Fecha,
turnos.hora
FROM turnos left join miagenda on turnos.codigoagenda=miagenda.codigo
) AS PivotData
PIVOT (
min(nombre)
FOR [Fecha] IN (
' + @PivotColumnHeaders + '
)
) AS PivotTable'
EXECUTE sp_executesql @PivotTableSQL
Valora esta pregunta


0