Гнездо с ошибками выписки

Я пытаюсь использовать операторы WITH и получаю ошибки, и я надеюсь, что кто-то может помочь. Я запрашиваю базу данных зарегистрированных звонков; В таблице с данными о вызове нет сведений о вызывающем абоненте, который находится в отдельной таблице, и с этим вызовом может быть связан один (или более) вызывающих абонентов, или ни одного - в этом случае будет указано название компании. И я все еще хочу детали звонка, даже когда их нет, но если у нас есть эти детали, я хочу их; Мне нужно искать "AD-User" в строке во второй таблице, где совпадают номера вызовов.

Я получил это:

WITH AllCompanysCalls as

(
     SELECT [RSUPDESK].[dbo].[Request].ID as CallID  
     ,[dbo].[vw_Associations].Item   

     FROM [RSUPDESK].[dbo].[Request]
     Inner Join  [RSUPDESK].[dbo].[vw_Associations]  ON [RSUPDESK].[dbo].[Request].ID = [RSUPDESK].[dbo].[vw_Associations].RQID 
     WHERE  ([RSUPDESK].[dbo].[vw_Associations].PrimaryAssociation = '1' and [RSUPDESK].[dbo].[vw_Associations].Item = 'Bob The Builder') 
     AND DATEPART(m, LoggedDate) = DATEPART(m, DATEADD(m, -1, getdate()))
     AND DATEPART(yyyy, LoggedDate) = DATEPART(yyyy, DATEADD(m, -1, getdate()))
)
,

WITH CallsWithUser AS

(
    SELECT CallID     
    ,[vw_Associations].[Item] as Username
    ,[vw_Associations].Style

    FROM AllCompanysCalls  Join  [RSUPDESK].[dbo].[vw_Associations]  ON AllCompanysCalls.CallID = [RSUPDESK].[dbo].[vw_Associations].RQID 
    WHERE [RSUPDESK].[dbo].[vw_Associations].Style = 'Contact'
 )
 ,

SELECT  AllCompanysCalls.CallID      
,CallsWithUser.[vw_Associations].[Item] as Username

FROM AllCompanysCalls LEFT Join  CallsWithUser  ON AllCompanysCalls.CallID = CallsWithUser.CallID 

Извините, это беспорядок, но я не вижу другого способа сделать это.

Это ошибка, которую я получаю:

Сообщение 156, уровень 15, состояние 1, строка 76 Неверный синтаксис рядом с ключевым словом "WITH". Сообщение 319, уровень 15, состояние 1, строка 76 Неправильный синтаксис рядом с ключевым словом "с". Если этот оператор является общим табличным выражением, предложением xmlnamespaces или предложением контекста отслеживания изменений, предыдущий оператор должен заканчиваться точкой с запятой. Сообщение 102, Уровень 15, Состояние 1, Строка 145 Неверный синтаксис рядом с ','.

Может кто-нибудь помочь, пожалуйста? это явно связано с наличием нескольких операторов, а второе использует результаты первого, но я не могу разобраться.

0 ответов

Другие вопросы по тегам