Нажмите, чтобы увидеть желаемый результат сводной таблицы
IF OBJECT_ID('tempdb..##TBL_TEMP') IS NOT NULL
DROP TABLE ##TBL_TEMP
DECLARE @SQLQuery AS NVARCHAR(MAX)
DECLARE @PivotColumns AS NVARCHAR(MAX)
DECLARE @AssetId AS Varchar(MAX)
SELECT @PivotColumns= COALESCE(@PivotColumns + ',','') +
QUOTENAME(fm.FieldMaintenanceId)
FROM CONCEPASSET.dbo.FieldData f
LEFT JOIN CONCEPASSET.dbo.AssetType a
ON f.AssetTypeId = a.AssetTypeId
LEFT JOIN CONCEPASSET.dbo.FieldMaintenance fm
ON f.FieldMaintenanceId = fm.FieldMaintenanceId
where a.AssetTypeId = 3
SET @SQLQuery = N'Select * from (Выберите AssetId, AssetTypeId, FieldMaintenanceId, [Данные] из AssetDetails) AS SourceTable PIVOT (MAX ([Данные]) ДЛЯ [FieldMaintenanceId] IN ('+@PivotColumns+')) AS TableTest '
EXEC sp_executesql @SQLQuery
Переработан код, и он работает, спасибо всем !!