【问题标题】:Multiple SELECT CASE statements in Query For Shoretel Reports查询 Shoretel 报告中的多个 SELECT CASE 语句
【发布时间】:2013-12-05 16:51:36
【问题描述】:

我正在尝试执行允许视图中包含多个列的查询。任何帮助都会有所帮助。

SELECT  queuecall1.StartTime, queuecall1.QueueName
CASE 
    WHEN ExitReason = 7 THEN 1 ELSE 0 END AS CallsAbandoned
    WHEN ExitReason = 1 THEN 1 ELSE 0 END AS CallsAgent 
    WHEN calltype = 1 THEN 1 ELSE 0 END) AS CallsInternal 
    WHEN calltype = 2 THEN 1 ELSE 0 END) AS CallsExternal
FROM   (queuecall queuecall1 INNER JOIN connect connect1 
ON queuecall1.ConnectTableID=connect1.ID) INNER JOIN call call1 
ON connect1.CallTableID=call1.ID

【问题讨论】:

  • 你想要的结果是什么?我看到一个语法错误的案例,但我不明白你想要什么
  • 感谢您的回复。我收到一个错误:消息 156,级别 15,状态 1,第 2 行关键字“CASE”附近的语法不正确。
  • 我正在尝试获取表格视图并为岸电电话系统的 BI 报告创建数据集。
  • 该错误是因为您在大小写之前缺少逗号,但这不是您唯一的错误。显示你想要的输出,最后你想要的表格。
  • 所以,'code' SELECT queuecall1.StartTime, queuecall1.QueueName, CASE WHEN ExitReason = 7 THEN 1 ELSE 0 END AS CallsAbandoned FROM (queuecall queuecall1 INNER JOIN connect connect1 ON queuecall1.ConnectTableID=connect1.ID ) INNER JOIN 调用 call1 ON connect1.CallTableID=call1.ID

标签: mysql sql reporting-services bids shoretel


【解决方案1】:

你需要为每一列做一个单独的case语句:

SELECT  queuecall1.StartTime, 
        queuecall1.QueueName,
        CASE WHEN ExitReason = 7 THEN 1 ELSE 0 END AS CallsAbandoned,
        CASE WHEN ExitReason = 1 THEN 1 ELSE 0 END AS CallsAgent,
        CASE WHEN calltype = 1 THEN 1 ELSE 0 END AS CallsInternal,
        CASE WHEN calltype = 2 THEN 1 ELSE 0 END AS CallsExternal
FROM   (queuecall queuecall1 INNER JOIN connect connect1 
ON queuecall1.ConnectTableID=connect1.ID) INNER JOIN call call1 
ON connect1.CallTableID=call1.ID

这将给出如下输出:

StartTime | QueueName | CallsAbandoned | CallsAgent | CallsInternal | CallsExternal
----------+-----------+----------------+------------+---------------+---------------
 10:59    |  Queue1   |      1         |    0       |     1         |      0
 11:05    |  Queue1   |      1         |    0       |     1         |      0
 11:11    |  Queue1   |      0         |    1       |     1         |      0
 11:12    |  Queue1   |      0         |    0       |     0         |      1
 11:24    |  Queue1   |      0         |    1       |     0         |      1
 11:37    |  Queue1   |      1         |    0       |     0         |      1
 11:42    |  Queue1   |      0         |    1       |     0         |      0

【讨论】:

  • 加雷斯D。这就是我一直在寻找的。查询中有 2 个错误,我在 END 语句之后删除了 ) 并且有效。这非常有帮助并解决了我的问题。
猜你喜欢
  • 2017-03-13
  • 2022-06-21
  • 2011-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-04
  • 2023-04-07
  • 2015-09-04
相关资源
最近更新 更多