我设法应用您建议的 PIVOT 语句将表记录的值自动转置为列:
DECLARE @PivotColumnas VARCHAR(MAX)
SELECT @PivotColumnas = COALESCE (@PivotColumnas + ',[' + IB_PDSBATCHATTRIBIDBI + ']', '[' + IB_PDSBATCHATTRIBIDBI + ']') FROM PDSBATCHATTRIB
DECLARE @PivotTablaSQL NVARCHAR(MAX)
SET @PivotTablaSQL = N' SELECT *
FROM (SELECT INVENTBATCHID, ITEMID, PDSBATCHATTRIB.IB_PDSBATCHATTRIBIDBI, PDSBATCHATTRIBVALUE FROM PDSBATCHATTRIBUTES
LEFT JOIN PDSBATCHATTRIB ON PDSBATCHATTRIBUTES.IB_PDSBATCHATTRIBIDBI = PDSBATCHATTRIB.IB_PDSBATCHATTRIBIDBI) AS TablaOrigen
PIVOT
(MIN(PDSBATCHATTRIBVALUE)
FOR IB_PDSBATCHATTRIBIDBI IN ('+ @PivotColumnas + ')) AS PivotTable'
EXECUTE (@PivotTablaSQL)
我需要的是如何将结果保存为查询或从此查询创建表。如果我尝试将结果另存为查询,则会收到以下错误:
关键字“DECLARE”附近的语法不正确。
谢谢!