我有台公制数据动态生成列
Metric ID Metric Date Metric Result Metric Calculation Color
--------------------------------------------------------------------------------------
001 2004-04-01 1 GREEN
002 2004-04-01 0 RED
001 2004-05-01 1 GREEN
002 2004-05-01 5 YELLOW
003 2004-05-01 2 GREEN
我想结果集类似
Metric ID April Result April Calc Color May Result May Calc Color
---------------------------------------------------------------------------------------
001 1 GREEN 1 RED
002 0 RED 5 YELLOW
003 2 GREEN
我已经使用的数据透视表的概念,但它给我的重复的结果就像
Metric ID April Result April Calc Color May Result May Calc Color
---------------------------------------------------------------------------------------
001 1 GREEN NULL NULL
001 NULL NULL 1 RED
002 0 RED NULL NULL
002 NULL NULL 5 YELLOW
003 2 GREEN
这是我用
查询;With CTE AS
(
SELECT * FROM (SELECT C.METRIC_ID,RESULT,COLOR FROM METRICDATA) Q PIVOT (MAX(RESULT) FOR [RESULT] IN ([April],[May]))Pv) PIVOT (MAX(COLOR) FOR [RESULT] IN ([April],[May]))Pv1)
度量结果和计算颜色列应根据查询提供的日期限制生成。
在此先感谢。
;随着CTE AS( SELECT * FROM ( SELECT C.METRIC_ID,RESULT,COLOR FROM METRICDATA )问 PIVOT (MAX(RESULT) FOR [结果] IN([年4月] ,[日]) )PV )PIVOT (MAX(彩色) FOR [结果] IN([月],[日]) )在Pv1 ) – Amirtha
如果你能得到这一结果你为什么不只是最后一次聚合它?像SELECT Metric_ID,MAX(April_Result)AS April_Result,MAX(April_Calc_Color)AS April_Calc_Color,MAX(May_Result)AS May_Result,MAX(May_Calc_Color)AS May_Calc_Color FROM MyPivot GROUP BY Metric_ID – VBlades
我不知道确切的月份范围它应该作为参数传递如果我正在使用聚合,它将在结果集中单独采用最新月份的值,并将NULL作为所有其他月份的值返回。 – Amirtha