我正在研究基于 2 列(HardwarePhase 和 HardwarePhase_Result)的双动态枢轴。
使用下图中的第一个结果集,是我拥有的原始数据。每组 5 个项目(在图像中突出显示)基于 HardwareTestCaseID 进行分组。
图像中的第二个结果集是我从如何构建此查询中获得的当前结果。 理想情况下,第二列的结果将是相同的结果,而是对结果进行分组。
分组应该基于 HardwareTestCaseID,但是,这并没有发生。
我真正想要的结果显示在这里。(应该有多行,但这就是每 5 个条目应该如何分组的方式)。
这是我目前使用的查询:
注意:@col 变量是根据 HardwarePhases(P0、M1、M2、M3)列表构建的。
select @query = 'SELECT ' + @colsNames + ',' + @colsResultNames + ', HardwareTestCaseID FROM
(
SELECT HardwarePhase_Result, HardwarePhase, ResultValue, HardwareTestCaseID, HardwareStatus
FROM #temp4
) as x
pivot
(
MAX(ResultValue)
FOR HardwarePhase_Result IN (' + @colsResult + ')
) as p
pivot
(
MAX(HardwareStatus)
FOR HardwarePhase IN (' + @cols + ')
) as p2 ';
使用此表:
create table #temp4
(
HardwarePhase nvarchar(max),
HardwarePhase_Result nvarchar(max),
ResultValue bigint,
HardwareTestCaseID bigint,
HardwareStatus nvarchar(max),
Block nvarchar(max)
);