0
轉換列行與連接表
我有以下結構:在SQL
WordTemplatesByAssemblyPackage
[PackageId] [TemplateId]
WordTemplate
[TemplateId] [Name]
WordTemplatePlainDataMappings
[TemplateId] [UDF01SdtTag] [UDF02SdtTag] [UDF03SdtTag] ... [UDF20SdtTag]
WordTemplateTableDataMappings
[TemplateId] [TableContainerSdtTag] [Col01SdtTag] [Col02SdtTag] ... [Col10SdtTag]
我一直在努力地下面的查詢轉換,但而不是選擇列我想將它們轉換爲行
SELECT
t.Name,
pd.UDF01SdtTag,
pd.UDF02SdtTag,
pd.UDF03SdtTag,
tpd.TableContainerSdtTag,
tpd.Col01SdtTag,
tpd.Col02SdtTag,
tpd.Col03SdtTag
FROM
doc.WordTemplatesByAssemblyPackage AS p
INNER JOIN doc.WordTemplate AS t ON p.TemplateId = t.TemplateId AND p.TemplateId = t.TemplateId
LEFT JOIN doc.WordTemplatePlainDataMappings AS pd ON pd.TemplateId = t.TemplateId AND pd.TemplateId = t.TemplateId
LEFT JOIN doc.WordTemplateTableDataMappings AS tpd ON tpd.TemplateId = t.TemplateId AND tpd.TemplateId = t.TemplateId
WHERE
p.PackageId = 3
我一直試圖與unpiv,但我得到的是
42000 - [SQL Server]The column 'TemplateId' was specified multiple times for 'unpiv'.
42000 - [SQL Server]The multi-part identifier "p.TemplateId" could not be bound.
最後,結果我試圖實現是這樣的:
t.Name Field Value
Template 1 Field 1 Value
Template 1 Field 2 Value
Template 1 Table 1 - Field 1 Value
Template 2 Field 1 Value
Template 2 Table 1 Field 1 Value