2016-11-09 4 views
1

デフォルトの状態(QLDからQuenslandなど)を次のクエリの出力として名前を変更(エイリアス)するにはどうすればよいですか? 州の予測をより高いレベル(例:National)に集計(SUM)する方法もありますか? UNPIVOTの集約とエイリアス

SELECT PRODUCT_BK, Month, State, Forecast 
FROM 
(SELECT * FROM Forecast_Table) t 
UNPIVOT 
(Forecast FOR State IN (SA_NT, QLD, VIC_TAS, WA, NSW_ACT)) AS fcst 

あなたは

これはthis questionにフォローアップありがとうございます。

+0

あなたが実際にどのような集約をしたいですか?あなたは期待される出力を見せてくれますか? –

+0

あなた自身のことを考えて、お時間をいただきありがとうございました – OZRiz

答えて

2

あなたがそのような目的

SELECT PRODUCT_BK, 
     MONTH, 
     CASE [State] WHEN 'QLD' THEN 'Quensland' 
        WHEN 'SA_NT' THEN 'something else' 
        ELSE [State] 
     END AS [State], 
     Forecast 
FROM (SELECT * FROM Forecast_Table) t 
UNPIVOT (Forecast FOR State IN (SA_NT, QLD, VIC_TAS, WA, NSW_ACT)) AS fcst 

または、別の方法として、あなたは、あなたのDBに#temp_tableまたは@variable_tableやテーブルを作成することができ、古い&新しい名前で、この表を記入し、これを最終的な出力を結合するためcaseを使用することができます表。

例:

-- create variable table to store reference between old and new alias 
DECLARE @Sometable AS TABLE 
    (
     OldName NVARCHAR(10) , 
     ShouldBeName NVARCHAR(20) 
    ) 
INSERT @Sometable 
     (OldName, ShouldBeName) 
VALUES ('SA_NT', 'Some Name 1'), 
     ('QLD', 'Some Name 2'), 
     ('VIC_TAS', 'Some Name 3'); 

--final query 
SELECT fcst.PRODUCT_BK , 
     fcst.Month , 
     COALESCE(S.ShouldBeName, fcst.[State]) AS [State] , 
     fcst.Forecast 
FROM (SELECT * FROM Forecast_Table) t 
     UNPIVOT (Forecast FOR State IN (SA_NT, QLD, VIC_TAS, WA, NSW_ACT)) AS fcst 
     LEFT JOIN @Sometable AS S ON fcst.[State] = S.OldName 

それとも、でもこのような:

SELECT fcst.PRODUCT_BK , 
     fcst.Month , 
     COALESCE(S.ShouldBeName, fcst.[State]) AS [State] , 
     fcst.Forecast 
FROM (SELECT * FROM Forecast_Table) t 
     UNPIVOT (Forecast FOR State IN (SA_NT, QLD, VIC_TAS, WA, NSW_ACT)) AS fcst 
     LEFT JOIN (SELECT * 
        FROM (VALUES ('SA_NT', 'Some Name 1'), 
            ('QLD', 'Some Name 2'), 
            ('VIC_TAS', 'Some Name 3') 
          ) AS S (OldName, ShouldBeName) 
        ) AS S ON fcst.[State] = S.OldName 
+0

おかげさまで、最初のオプションがうまくいきました。私はまた、全国レベルでの予測を集計することを考え出しました。あなたの努力は非常に高く評価されます。 – OZRiz