这让我发疯了!它一定很简单。

这是我的代码:

Select
logid,
row_date,
sum(acdcalls) as 'total calls',
sum(ti_stafftime) as 'total time staffed',
sum(acdtime) as 'time on the phone',
Case acdtime
When acdtime > 0 Then
sum(ti_stafftime/acdtime)
Else '0'
End as MyPercent,
RepLName+', '+RepFName AS Agent,
SupLName+', '+SupFName AS Sup,
MgrLName+', '+MgrFName AS Manager

我收到错误消息



我在这里做错了什么?

最佳答案

您在CASE部分中有一个项目,在WHEN中有一个表达式。您必须选择其中一个:

Case
When acdtime > 0 Then sum(ti_stafftime/acdtime)
Else '0'
End as MyPercent,

要在CASE部分中使用值,您可以执行以下操作:
Case Foo
When 'Bar' Then 1
When 'Gamma' Then 2
...
End

但是,在这种情况下,您不能执行任何复杂的逻辑。也就是说,在许多C类型语言中,它仅通过与While部分中的值进行匹配就可以像“switch”语句一样。当您要执行逻辑表达式时,需要将CASE部分保留为空白,而仅保留WHEN部分。

10-08 10:51