CTE からピボットに必要な結果を取得する方法に頭を悩ませています。次のフィールドを持つテーブルがあります。
ReadingDescription Varchar(50)
ReadingDate datetime
ReadingValue int
データは次のようになります。
MinDemand 1-1-2012 250
MaxDemand 1-1-2012 300
MinDemand 1-2-2012 260
MaxDemand 1-2-2012 310
MinDemand 1-3-2012 250
MaxDemand 1-3-2012 300
MinDemand 1-4-2012 260
MaxDemand 1-4-2012 310
次のような出力が必要です。
ReadingDate MinDemand MaxDemand AvgDemand
1-1-2012 250 300 275
1-2-2012 260 310 285
1-2-2012 250 300 275
1-2-2012 260 310 285
私は研究を続けてきましたが、近いと思いますが、CTEの部分を乗り越えることはできません。これが私がこれまでに持っているものです:
with cte as (
SELECT
CONVERT(DATE,h.ReadingDate,1) as ReadingDate,
left(ReadingDescription,11) as Reading,
h.ReadingValue
FROM
FAC_WeeklyReadings wr
JOIN
FAC_WeeklyReadingsHistory h ON h.WeeklyReadingID = wr.WeeklyReadingID
where
wr.WeeklyReadingID in (149,150)
AND
h.ReadingDate BETWEEN '1-1-2012' AND '12-31-2012'
)
pivot(
--I have tried several things here but have not been successful
--
) p