Если мы выберем только значение и имя_файла из источника, оно будет работать как положено.
select [Address],[Address 1],[Address 2],[Address2],[Birth Day],[City],
[Email],[First Name],[Last Name],[Phone],[State],[Zip]
from
(SELECT value, fieldname
FROM [Sitecore_WebForms].[dbo].[Field]
where FormId='C9681226-5951-403D-80A0-00019218785C'
) as SourceTable
pivot
(
max(value)
for [fieldname] in
([Address],[Address 1],[Address 2],[Address2],[Birth Day],[City],[Email],
[First Name],[Last Name],[Phone],[State],[Zip])
) as pt
Обновление для всех форм:
DECLARE @form TABLE
(
id INT,
formid INT,
fieldName VARCHAR(32),
fieldValue VARCHAR(32)
)
insert into @form values(1,1,'First Name','FRST')
insert into @form values(2,1,'Last Name','LST')
insert into @form values(3,1,'Address','ADDR')
insert into @form values(4,2,'First Name','FRST2')
insert into @form values(5,2,'Last Name','LST2')
insert into @form values(6,2,'Address','ADDR2')
select FormId,[Address],[Address 1],[Address 2],[Address2],[Birth Day],[City],
[Email],[First Name],[Last Name],[Phone],[State],[Zip]
from
(SELECT FormId,fieldName,fieldValue
FROM @form
--where FormId=1
) as SourceTable
pivot
(
max(fieldValue)
for [fieldname] in
([Address],[Address 1],[Address 2],[Address2],[Birth Day],[City],[Email],
[First Name],[Last Name],[Phone],[State],[Zip])
) as pt