2013-03-28 75 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个内总共加入每一个WHERE子句和您的建议把所有的WHERE子句底部? –

+0

@RichardC - 我只在上面的查询中看到2个内部连接。你只能有一个'WHERE'子句。但是,是的,“WHERE”会在你所有的连接之后进行。 –

+0

对不起,我会想要在每个单独的内部问题中的where子句这可能吗?我已经编辑了上面的代码 –