我附了两个桌子。一个表有输入,而另一个表是我想要的输出。
Declare @getfval as nvarchar(MAX)='';
Declare @query as nvarchar(MAX)='';
Declare @getsval as nvarchar(MAX)='';
select @getfval = @getfval + QUOTENAME(tagname) + ',' from (select
distinct tagname from TagTable) as tp
select @getfval = SUBSTRING(@getfval, 0, LEN(@getfval))
select @getsval = @getsval + QUOTENAME(tagname) + ',' from (select
distinct tagname from tag3 ) as sp
select @getsval = SUBSTRING(@getsval, 0, LEN(@getsval))
set @query = 'select * from
(
select DateAndtime, tagname, fval, sval from
tag3
) src
pivot
(max(fval) for tagname in ('+@getfval+')) as pivot1
pivot
(max(sval) for tagname in ('+@getsval+')) as pivot2 '
execute(@query)
我尝试了这一操作,但是由于在透视操作中使用了列名(即标记名),因此出现错误。这是错误
PIVOT运算符中指定的列名“ Tag1”与PIVOT参数中的现有列名冲突
那我该怎么办?
我想为所需的输出编写过程