2013-04-03 97 views
11

試圖在內部連接上使用CASE語句,我得到的所有語法錯誤都是語法錯誤,任何人對此有任何建議?關於INNER的案例聲明加入

下面是代碼

SELECT 
    Call_type_ID, 
    SUM (staging.dbo.outgoing_measure.ring_time) AS Ring_Time, 
    SUM (staging.dbo.outgoing_measure.hold_time) As Hold_Time, 
    SUM (staging.dbo.outgoing_measure.talk_time) AS Talk_Time, 
    SUM (staging.dbo.outgoing_measure.acw_time) AS ACW_Time, 
    COUNT(*) CallCount 
FROM outgoing_measure 

INNER JOIN datamartend.dbo.Call_Type_Dim ON 
CASE 
WHEN 
CTICallType_ID = 1 
AND CTIAgentCallType_ID = 0 
AND Abandoned IS NULL 
AND AnsTime > 0 
AND CallState IS NULL 
THEN Call_Type_ID = 10 
WHEN 
CTICallType_ID = 1 
AND CTIAgentCallType_ID = 0 
AND Abandoned IS NULL 
AND AnsTime > 0 
AND CallState = 1 
THEN call_Type_id = 11 
WHEN 
CTICallType_ID = 1 
AND CTIAgentCallType_ID = 0 
AND Abandoned = 1 
AND AnsTime IS NULL 
AND CallState IS NULL 
THEN call_type_ID = 12 
ELSE call_type_id = 1 
END 

Group by call_Type_id 

這是我第一次,即使case語句的工作,更別說用內結合加入,所以我很抱歉,如果我完全搞砸了。

的語法錯誤的即時通訊越來越有:

在=不正確的語法,當這裏

THEN Call_Type_ID = 10 
WHEN 

和不正確的語法期待在羣變換BY

回答

19

好像你正試圖在案例中創建Where-clause,但是您應該將案例的結果與Call_Type_ID(或您想要的任何其他字段)進行比較,如我在下面寫的示例 希望它有幫助!

有時我還會在我的套管上使用括號,以便更容易地看到他們在哪裏開始和停止。

INNER JOIN datamartend.dbo.Call_Type_Dim ON 
(CASE 
WHEN CTICallType_ID = 1 
    AND CTIAgentCallType_ID = 0 
    AND Abandoned IS NULL 
    AND AnsTime > 0 
    AND CallState IS NULL 
    THEN 10 
WHEN CTICallType_ID = 1 
    AND CTIAgentCallType_ID = 0 
    AND Abandoned IS NULL 
    AND AnsTime > 0 
    AND CallState = 1 
    THEN 11 
WHEN 
    CTICallType_ID = 1 
    AND CTIAgentCallType_ID = 0 
    AND Abandoned = 1 
    AND AnsTime IS NULL 
    AND CallState IS NULL 
    THEN 12 
ELSE 1 
END) = Call_Type_ID -- Insert something here to join on. 
+0

我認爲你可能是對的,就像我說的新的整個概念。感謝您的建議 –

-3
select * from emp; 
select * from dept; 

........................................從EMP內部聯接部門對emp.deptno=dept.deptno ;

...................................

select Ename,Job,dname, 
Case job 
when 'Clerk' then 'C' 
when 'Salesman' then 'S' 
when 'Manager' then 'M' 
when 'Analyst' then 'A' 
else 'Other' 
end as Demo 

................................................ .................................

我在這裏考慮ta默認情況下表爲oracle。