Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Shoretel报告查询中的多个SELECT CASE语句_Mysql_Sql_Reporting Services_Bids_Shoretel - Fatal编程技术网

Mysql Shoretel报告查询中的多个SELECT CASE语句

Mysql Shoretel报告查询中的多个SELECT CASE语句,mysql,sql,reporting-services,bids,shoretel,Mysql,Sql,Reporting Services,Bids,Shoretel,我正在尝试执行一个允许视图中有多个列的查询。任何援助都会有帮助 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

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

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

您需要为每列执行单独的案例说明:

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

你期望的结果是什么?我看到一个案例在语法上是错误的,但我不明白你想要什么感谢你的回答。ia收到一个错误:Msg 156,级别15,状态1,第2行关键字“CASE”附近的语法不正确。我尝试获取一个表视图,并为shoretel电话系统的BI报告创建一个数据集。该错误是因为您在CASE之前缺少逗号,但这不是您唯一的错误。显示所需的输出,即最终所需的表。因此,“代码”选择queuecall1.StartTime,queuecall1.QueueName,当ExitReason=7时为大小写,然后选择1其他0结束为CallsAndOned FROM(queuecall queuecall1内部连接连接连接1 ON queuecall1.ConnectTableID=connect1.ID)connect1上的内部联接调用call1.CallTableID=call1.IDGarethD。这就是我要找的。查询中有2个错误,我删除了END语句后的)错误,这就成功了。这非常有帮助,解决了我的问题。