2017-04-19 72 views
2

我正在使用以下SQL腳本在執行時取消轉移數據我收到此錯誤:UNPIVOT運算符中與UNPIVOT參數中的現有列名稱衝突中指定。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 ; 

來自unpivot的輸出列我想看到的是HelpDeskName,ReceivedTime,Category,CategoryValue。請告知或幫助此查詢。

enter image description here

enter image description here

+1

你能提供的樣本數據和預期的效果?你想要一個'unpivot'或'pivot'嗎? –

+0

我添加了兩個圖像。 – Justin

回答

4

兩個快速選項

選擇1 - 通過跨應用

跨應用的方法提供了更多的自由/靈活性。例如,您可以輕鬆地重命名類別或重新設置值。

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) 

選項2 - 通過逆透視

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

雙方將返回類似這樣

enter image description here

+0

謝謝,它工作得很好。 – Justin

+0

@Justin快樂它幫助 –