I'm creating a pivot table but this error appears: Message 1087, level 15, state 2, line 6 Declare the table variable "@TABELLA_personale". the @TABELLA_personale has been declared and works, so I don't understand what the problem is.
DECLARE @columns NVARCHAR(MAX), @sql NVARCHAR(MAX);
SET
   @columns = N'';
SELECT
   @columns += N', p.' + QUOTENAME((cast(IDUTENTE AS VARCHAR(MAX)) + ' ' + NOME + ' ' + COGNOME + ' ' + (ISNULL (LIVELLO, '')))) 
FROM
   (
      SELECT
         p.IDUTENTE,
         p.NOME,
         p.COGNOME,
         p.LIVELLO 
      FROM
         @TABELLA_personale AS p 
         INNER JOIN
            @TABELLA_completa AS o 
            ON p.IDUTENTE = o.ID 
      GROUP BY
         p.IDUTENTE,
         P.NOME,
         P.COGNOME,
         P.LIVELLO
   )
   AS x;
SET
   @sql = N'
   SELECT
      ' + STUFF(@columns, 1, 2, '') + ' 
   FROM
      (
         SELECT
            p.NOME,
            o.ORELAVORATE 
         FROM
            @TABELLA_personale AS p 
            INNER JOIN
               @TABELLA_completa AS o ONp.IDUTENTE = o.ID 
      )
      AS j PIVOT ( MAX(ORELAVORARE) FOR NOME IN 
      (
         '
 + STUFF(REPLACE(@columns, ', p.[', ',['), 1, 1, '') + ')) AS p;';
PRINT @sql;
EXEC sp_executesql @sql;
