Unpivot Plusieurs colonnes d'une table spécifique

J'utilise SQL Script suivant pour resize datatables lorsque j'exécute Je reçois cette erreur: spécifié dans l'opérateur UNPIVOT est en conflit avec le nom de colonne existant dans l'argument UNPIVOT.

SELECT HelpDeskName , TRY_CONVERT(NUMERIC(10,4),loggedInAgents) AS loggedInAgents , TRY_CONVERT(NUMERIC(10,4),AvailableAgents) AS AvailableAgents , TRY_CONVERT(NUMERIC(10,4),UnAvailableAgent) AS UnAvailableAgent , TRY_CONVERT(NUMERIC(10,4),TotalCalls) AS TotalCalls , TRY_CONVERT(NUMERIC(10,4),CallsHandled) AS CallsHandled , ReceivedTime FROM [Final].[UCCX] AS U UNPIVOT ( HelpDeskName, ReceivedTime for Category in (LoggedInAgents,AvailableAgents,UnAvailableAgent,TotalCalls,CallsHandled) ) Z ; 

Les colonnes de sortie d'unpivot que je voudrais voir est HelpDeskName, ReceivedTime, Category, CategoryValue. S'il vous plaît conseiller ou aider avec cette requête.

entrez la description de l'image ici

entrez la description de l'image ici

Deux options rapides

Option 1 – Via Cross Appliquer

L'approche Cross Apply offre un peu plus de liberté / flexibilité. Par exemple, vous pouvez facilement renommer les catégories ou redéfinir les valeurs.

 Select A.HelpDeskName ,A.RecievedTime ,B.* From YourTable A Cross Apply (values ('LoggedInAgents' ,A.LoggedInAgents) ,('AvailableAgents' ,A.AvailableAgents) ,('UnavailableAgents',A.UnavailableAgents) ,('TotalCalls' ,A.TotalCalls) ,('CallsHandled' ,A.CallsHandled) ) B (Category,CategoryValue) 

Option 2 – Via UnPivot

 Select HelpDeskName,RecievedTime,Category,CategoryValue From YourTable UnPivot ( CategoryValue For Category in (LoggedInAgents,AvailableAgents,UnavailableAgents,TotalCalls,CallsHandled) ) u; 

Les deux returnneraient quelque chose comme ça

entrez la description de l'image ici