我有一个选择查询的数据,如下所示:
ScopeGroupID Activity Col1 Col2 Col3
421471 Release to Trace 001-20-01 19072M-001-01 19101
421471 Trace Complete 001-20-02 19072M-001-02 19102
421471 NDE Complete 001-20-03 19072M-001-03 19103
421473 Release to Trace 001-20-04 19072M-001-04 19104
421473 Trace Complete 001-20-05 19072M-001-05 19105
421473 NDE Complete 001-20-06 19072M-001-06 19106
我试图在一个查询中实现两件事,因为这将是一个动态的查询。
一:获取活动作为列标题和
第二:将列Col1、Col2和Col3设置为行值。在步骤1中创建的每个列标题下,这些相应的值应显示如下:
ScopeGroupID Selected Params Release to Trace Trace Complete NDE Complete
421471 Col1 001-20-01 001-20-02 001-20-03
421471 Col2 19072M-001-01 19072M-001-02 19072M-001-03
421471 Col3 19101 19102 19103
421473 Col1 001-20-04 001-20-05 001-20-06
421473 Col2 19072M-001-04 19072M-001-05 19072M-001-06
421473 Col3 19104 19105 19106
活动是动态的,数量可以很多。
任何帮助都将不胜感激。
以下是用于测试的SQL插入:
declare @datatemp table(ScopeGroupID int, Activity varchar(50),
Col1 varchar(50), Col2 varchar(50), Col3 int)
insert into @datatemp
select 421471, 'Release to Trace', '001-20-01', '19072M-001-01', 19101
union
select 421471, 'Trace Complete', '001-20-02', '19072M-001-02', 19102
union
select 421471, 'NDE Complete', '001-20-03', '19072M-001-03', 19103
union
select 421473, 'Release to Trace', '001-20-04', '19072M-001-04', 19104
union
select 421473, 'Trace Complete', '001-20-05', '19072M-001-05', 19105
union
select 421473, 'NDE Complete', '001-20-06', '19072M-001-06', 19106