いくつかの値を列にピボットしようとしていますが、それらをすべて同じ行にすることはできません。ピボット クエリを具体的に記述する方法があるかどうか、またはそれらに参加しようとしている方法に問題があるかどうかはわかりません。あなたはおそらく私よりもよく知っているので、Stackoverflow、私は私のひどい試みを省き、それを説明しようとします...
select
[CARRIAGE_ID]
,[PUBLISH_FLAG]
,[COUNTER_PRESCRIBED]
,[ADT] AS 'ADT2008'
,[AWT] AS 'AWT2008'
,[AWE] AS 'AWE2008'
from [RISSxplr].[dbo].[ADT_MAP_FACT]
pivot (max([FIGURE]) FOR COUNT_TYPE IN ([ADT],[AWT],[AWE])) AS pCountType
WHERE [COUNT_YEAR] = 2008
(サンプル)のような結果が得られます:
CARRIAGE_ID PUBLISH_FLAG COUNTER_PRESCRIBED ADT2008 AWT2008 AWE2008
10041 1 P NULL NULL 36800
10041 1 P NULL 46400 NULL
10041 1 P 43000 NULL NULL
これらはすべて同じ CARRIAGE_ID を共有しており、必要なのはすべて同じ行にあるため、次のようになります。
CARRIAGE_ID PUBLISH_FLAG COUNTER_PRESCRIBED ADT2008 AWT2008 AWE2008
10041 1 P 43000 46400 36800
しかし、私はそれを実現できないようです。助けてください!そして、いつもありがとう。
編集: ADT_MAP_FACT からサンプル データを追加します
CARRIAGE_ID COUNT_TYPE COUNT_YEAR FIGURE NUMBER_DAYS PUBLISH_FLAG COUNTER_PRESCRIBED
10041 ADT 2008 43000 341 1 P
10041 ADT 2009 43400 292 1 P
10041 ADT 2010 44000 314 1 P
10041 ADT 2011 43300 341 1 P
10041 ADT 2012 42700 354 1 P
10041 AWE 2008 36800 95 1 P
10041 AWE 2009 36800 81 1 P
10041 AWE 2010 37900 87 1 P
10041 AWE 2011 37000 98 1 P
10041 AWE 2012 36500 98 1 P
10041 AWT 2008 46400 192 1 P
10041 AWT 2009 46900 162 1 P
10041 AWT 2010 47100 185 1 P
10041 AWT 2011 46900 189 1 P
10041 AWT 2012 46600 198 1 P