3

次のような結果を生成するテーブルがあります。

Code   Month    Value

733     May      520.00
733     May     2250.00
733     May      125.00

次のようなレコードの上に表示する必要があるという要件があります。

Code    May
733      520
733     2250
733      125

ピボットに行くことで1つの方法を考えることができるので、次のようにしました:

Select 
    Code,
    IsNull(January,0)[January(Actual)],          
    IsNull(February,0)[February(Actual)],              
    IsNull(March,0)[March(Actual)],              
    IsNull(April,0)[April(Actual)],              
    IsNull(May,0)[May(Actual)],              
    IsNull(June,0)[June(Actual)],              
    IsNull(July,0)[July(Actual)],              
    IsNull(August,0)[August(Actual)],              
    IsNull(September,0)[September(Actual)],              
    IsNull(October,0)[October(Actual)],              
    IsNull(November,0)[November(Actual)],              
    IsNull(December,0)[December(Actual)]
From 
    (
    Select 
         Code,
         [Month],
         Value
    From 
        #tempMonthWiseActualValue
    )s 
Pivot  
    (
         min([Value] )
         For [Month]           
        In    (January,February,March,April,May,June,July,August,September,October,November,December) 
    )as pvt
Order by Code

ただし、すべての値を保持する必要があるため、ここでは集計関数が機能しないため、1 つの制限があります。つまり、MIN、MAX、SUM などは機能しません。Min/Max を使用すると、値の列に 125 または 2250 が表示されます。

だから私の質問は:

ピボットテーブルを使用して目的の結果を見つける方法はありますか、または #temp テーブルを使用する必要がありますか?

4

3 に答える 3