2013-03-28 3 views
0

У меня есть этот запрос, и верхнее внутреннее соединение работает нормально, но когда я добавляю второе соединение, я получаю неправильный синтаксис рядом с «INNER», кто-нибудь может понять, почему?Внутреннее соединение с предложением WHERE, влияющим на второе соединение

SELECT Time_ID, 
    Site_Type_ID, 
    SUM (staging.dbo.incoming_measure.ring_time) AS Ring_Time, 
    SUM (staging.dbo.incoming_measure.hold_time) As Hold_Time, 
    SUM (staging.dbo.incoming_measure.talk_time) AS Talk_Time, 
    SUM (staging.dbo.incoming_measure.acw_time) AS ACW_Time 
FROM staging.dbo.incoming_measure 
     INNER JOIN 
    (SELECT Time_ID FROM datamartend.dbo.Time_Dim) TimeID 
     ON TimeID.Time_ID = incoming_measure.StartTime 

     INNER JOIN 
    (SELECT Site_Type_ID, Site_Type_Code FROM datamartend.dbo.Site_Type_dim) SiteID 
     ON SiteID.Site_Type_ID = incoming_measure.DBID 

WHERE StartTimeDate BETWEEN StartTimeDate AND EndTimeDate 
    AND 
WHERE SiteId.Site_type_code = incoming_measure.DBID 

GROUP BY time_id, site_type_id 

ответ

4

Вы должны переместить WHERE вниз над GROUP BY:

WHERE StartTimeDate BETWEEN StartTimeDate AND EndTimeDate 
AND SiteId.Site_type_code = incoming_measure.DBID 

Group by time_id, site_type_id 
+0

Так что я буду иметь 4 внутренние соединения в общей сложности каждый с ИНЕКЕМ и ваши предлагая поставить все ИНЕК в нижней части ? –

+0

@RichardC - Я вижу только 2 внутренних соединения в вашем запросе выше. У вас может быть только одно предложение WHERE. Но да, «WHERE» идет за всеми вашими объединениями. –

+0

Извините, мне будет нужно, чтобы предложение where в каждом из отдельных внутренних запросов было возможно? Я редактирую код выше –

Смежные вопросы