2017-04-19 9 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

私は2枚の画像を追加しました。 – 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 - 経由UNPIVOT

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幸せに助けました –

関連する問題