【问题标题】:SQL Query Shoretel Tracking Voicemail Calls [closed]SQL 查询 Shoretel 跟踪语音邮件呼叫 [关闭]
【发布时间】:2013-12-05 20:53:11
【问题描述】:

我有疑问,我遇到了麻烦。我正在尝试在以下 KEY 中捕获参数:

//  We track all calls ending up in Workgroup Voice Mailbox:
//  ExitReason:
//  9 - TransferVM
//  2 - ForwardAlways (Workgroup is set up to always forward calls)
//  3 - ForwardBusy
//  4 - ForwardNoAnswer
//  5 - ForwardNoAgent
//
//  TargetType:
//  3 - Mailbox
//  
//  TargetDN:
//  Target's Extension.
//  If target is workgroup's mailbox (TargetDN = QueueDN and TargetType = 3)
//  call ended up in workgroup mailbox.
//

我要执行的查询是:

Select CASE WHEN ExitReason = 9 AND 
    TargetType = 3 AND 
    TargetDN = QueueDN OR 
    ExitReason = 2 OR
    ExitReason = 3 OR
    ExitReason = 4 OR
    ExitReason = 5 AND
    TargetType = 3 THEN 1 ELSE 0 AS CallsVM
FROM   (queuecall queuecall1 INNER JOIN connect connect1 
ON queuecall1.ConnectTableID=connect1.ID) INNER JOIN call call1 
ON connect1.CallTableID=call1.ID

我在使用 AS、FROM 时遇到多个错误。任何帮助都会很棒。 谢谢, 阿伦

【问题讨论】:

  • 你需要学习SQL
  • 是的,我是 SQL 新手,正在努力学习。
  • 听起来像是 CTE 或表变量的绝佳候选者,加入它以获得您的位值。
  • 赞成,因为这是一个关于如何在shoretel中查询语音邮件信息的主要工作示例。

标签: sql reporting-services bids shoretel


【解决方案1】:

您的 case 语句中缺少关键字 END。你也错过了使用IN的机会

例如

SELECT CASE 
         WHEN exitreason = 9 
              AND targettype = 3 
              AND targetdn = queuedn 
               OR exitreason IN ( 2, 3, 4, 5 ) 
                  AND targettype = 3 THEN 1 
         ELSE 0 
       END AS CallsVM 
FROM   queuecall queuecall1 
       INNER JOIN connect connect1 
               ON queuecall1.connecttableid = connect1.id 
       INNER JOIN call call1 
               ON connect1.calltableid = call1.id 

【讨论】:

  • 康拉德。我很高兴我离得不远。感谢您的时间。这纠正了我在查询中遇到的问题。问题已解决!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-20
  • 2010-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
相关资源
最近更新 更多