Sql 关于内部联接的Case语句

Sql 关于内部联接的Case语句,sql,sql-server,syntax,case,Sql,Sql Server,Syntax,Case,尝试在内部连接上使用CASE语句,我得到的只是语法错误,有人对此有什么建议吗 这是密码 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

尝试在内部连接上使用CASE语句,我得到的只是语法错误,有人对此有什么建议吗

这是密码

 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

不正确的语法要求在GROUP BY上进行转换。看起来您试图在案例中创建Where子句,但是您应该将案例的结果与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.

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
emp.deptno=dept.deptno上的emp内部加入dept

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

我认为这里的表默认为oracle表。

我想你们可能是对的,就像我说的,我对整个概念还不熟悉。谢谢你的建议