У меня есть иерархический запрос с общими табличными выражениями:
WITH Revision(REV, MonitoringGroupId, BusinessLineId, REVTYPE, REVEND) AS
(
SELECT REV, MonitoringGroupId, BusinessLineId, REVTYPE, REVEND
FROM MonitoringGroupBusinessLine_AUD
WHERE REV = 1045
UNION ALL
SELECT rev.REV, rev.MonitoringGroupId, rev.BusinessLineId, rev.REVTYPE, rev.REVEND
FROM MonitoringGroupBusinessLine_AUD rev
INNER JOIN Revision ON rev.REVEND = Revision.REV
)
SELECT
DISTINCT
MonitoringGroupId,
BusinessLineId,
IIF(REVTYPE = 2, 'REMOVE', 'ADD') as Operation
FROM Revision
И я хочу использовать его как подзапрос, что-то вроде этого:
SELECT audit.MonitoringGroupId, audit.BusinessLineId, audit.Operation
FROM
(
WITH Revision(REV, MonitoringGroupId, BusinessLineId, REVTYPE, REVEND) AS
(
SELECT REV, MonitoringGroupId, BusinessLineId, REVTYPE, REVEND
FROM MonitoringGroupBusinessLine_AUD
WHERE REV = 1045
UNION ALL
SELECT rev.REV, rev.MonitoringGroupId, rev.BusinessLineId, rev.REVTYPE, rev.REVEND
FROM MonitoringGroupBusinessLine_AUD rev
INNER JOIN Revision ON rev.REVEND = Revision.REV
)
SELECT
DISTINCT
MonitoringGroupId,
BusinessLineId,
IIF(REVTYPE = 2, 'REMOVE', 'ADD') as Operation
FROM Revision
) audit
У меня ошибка:
Неверный синтаксис рядом с ключевым словом «с». Если это утверждение
общее табличное выражение, предложение xmlnamespaces или отслеживание изменений
контекстное предложение, предыдущий оператор должен заканчиваться
точка с запятой.
Я пытался добавить ;
до WITH
, но он все равно не работает. Как использовать мой иерархический запрос в качестве подзапроса?