Hola a todos de antemano les agradesco por leer mi probelma, lo que sucede es que necesito crear una consulta utilizando pivot dinamico en SQL server 2008 y siguiendo los pasos de varios ejemplos logre obtener el codigo, pero no se ejecuta y no encuentro donde esta el problema.
Aqui les dejo el codigo....ojala me puedan ayudar...............................
DECLARE @NOMBREPVT AS NVARCHAR(MAX),@NOMBRES AS VARCHAR(20)
DECLARE @NOMBREID AS VARCHAR(20)
SET @NOMBREID=(SELECT MIN(NOMBREEXAM) FROM EXAMEN)
SET @NOMBRES=(SELECT NOMBREEXAM FROM EXAMEN WHERE NOMBREEXAM = (SELECT MIN(NOMBREEXAM) FROM EXAMEN))--@NOMBREID)
SET @NOMBREPVT = N''
WHILE @NOMBRES IS NOT NULL
BEGIN
SET @NOMBREPVT = @NOMBREPVT + N',['+ @NOMBRES +N']'
SET @NOMBRES = (SELECT TOP(1) NOMBREEXAM
FROM EXAMEN WHERE NOMBREEXAM > @NOMBREID
ORDER BY NOMBREEXAM)
SET @NOMBREID = (SELECT MIN(NOMBREEXAM) FROM EXAMEN WHERE NOMBREEXAM=@NOMBRES)
END
PRINT @NOMBREPVT
SET @NOMBREPVT = SUBSTRING(@NOMBREPVT, 1, LEN(@NOMBREPVT))
PRINT 'OK'
PRINT @NOMBREPVT
DECLARE @SQL AS NVARCHAR(MAX)
SET @SQL = N'SELECT *
FROM (SELECT M.CEDULAMED, NOMBREEXAM, CANTIDAD
FROM MEDICO M
INNER JOIN DBO.[SOLICITUD] S
ON M.CEDULAMED=S.CEDULAMED
INNER JOIN DETALLE_SOLICITUD D
ON S.NUMEROSOL=D.NUMEROSOL
) PIV
PIVOT (SUM(CANTIDAD) FOR NOMBREEXAM IN ('+ @NOMBREPVT + ')) AS PIVOTTABLE'
EXEC SP_EXECUTESQL @SQL