У меня есть это:Pivot с крестом и накидной КТР в SQL Server
SELECT *
FROM
(SELECT
tblLandAreas.LandAreaId, Sysproperties.Name,
tblLandAreaPropertyValues.Value
FROM tbllandareas
LEFT JOIN tblLandAreaProperties ON tblLandAreaProperties.LandAreaId = tblLandAreas.LandAreaId
LEFT JOIN tblLandAreaPropertyValues ON tblLandAreaProperties.LandAreaPropertyId = tblLandAreaPropertyValues.LandAreaPropertyId
CROSS JOIN Sysproperties SysProperties
WHERE
SysProperties.SysPropertyId = tblLandAreaProperties.SysPropertyId
AND tblLandAreas.LandAreaId = '1175'
UNION ALL
SELECT DISTINCT
(tblLandAreas.LandAreaId), Sysproperties.Name, null
FROM tbllandareas
LEFT JOIN tblLandAreaProperties ON tblLandAreaProperties.LandAreaId = tblLandAreas.LandAreaId
LEFT JOIN tblLandAreaPropertyValues ON tblLandAreaProperties.LandAreaPropertyId = tblLandAreaPropertyValues.LandAreaPropertyId
CROSS JOIN Sysproperties SysProperties
WHERE tblLandAreas.LandAreaId = '1175') AS SourceTable
PIVOT
(
MAX(SourceTable.Value)
FOR SourceTable.Name IN (SELECT Name FROM Sysproperties)
) AS PivotTable
, и я получаю эту ошибку:
Msg 156, Level 15, State 1, Line 22
Incorrect syntax near the keyword 'SELECT'.Msg 102, Level 15, State 1, Line 22
Incorrect syntax near ')'.
Что я делаю неправильно?
Вы не можете использовать 'ВЫБРАТЬ Name FROM Sysproperties' в функции PIVOT подобных , Если у вас будут неизвестные значения, вам нужно использовать динамический SQL. – Taryn