Неверный синтаксис рядом с ')' Ошибка в CTE - PullRequest
1 голос
/ 25 апреля 2019

Я написал следующее CTE (Common Table Expression)

WITH PRODUCTION_CTE(ShortProdNo,BoatRefNumber,ProdNo, CustomerPoNumber,LoadDate, Trailer, VeadaBuilding)
AS 
(
    SELECT 
    FBS.BoatNumber AS ShortProdNo,
    UOD.BoatRefNumber AS BoatRefNumber,
    FBS.ProdNo AS ProdNo,
    UOD.CustomerPoNumber AS CustomerPoNumber,
    FBS.Shipped AS LoadDate, 
    FBS.TruckNum AS Trailer,
    (CASE 
    WHEN Rtrim(UOD.CustomerPoNumber)='VEADA-VS1' THEN  'Bldg10'
     ELSE 'Bldg4'
     END) AS VeadaBuilding
FROM SysproCompanyV.dbo.FlatBenningtonShipping as FBS
INNER JOIN SysproCompanyV.dbo.UsrOrderDetails as UOD
ON FBS.BoatNumber=UOD.BoatRefNumber)

Я получаю следующую ошибку из вышеуказанного CTE:

Msg 102, Level 15, State 1, Line 17
Incorrect syntax near ')'.

Я не уверен, почему это происходит, поскольку в CTE разрешены внутренние объединения, все круглые скобки закрыты, а имена правильно объявлены.

1 Ответ

5 голосов
/ 25 апреля 2019

Вам нужно позвонить CTE (то есть PRODUCTION_CTE) НЕМЕДЛЕННО после объявления:

;with PRODUCTION_CTE as (
      . . . 
)

select pc.*
from PRODUCTION_CTE pc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...