簡體   English   中英

取消透視表中的多個列

[英]Unpivot Multiple columns from specific Table

我在執行時使用以下SQL腳本取消數據透視,我收到此錯誤: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。 請對此查詢提供建議或幫助。

在此處輸入圖片說明

在此處輸入圖片說明

兩種快速選擇

選項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;

兩者都會返回這樣的內容

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM