Search code examples
mysqlsqlreporting-servicesbidsshoretel

Multiple SELECT CASE statements in Query For Shoretel Reports


I am trying to do a query that allow for multiple columns in a view. Any assistance would be helpful.

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

Solution

  • You need to do a separate case statement for each column:

    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
    

    This would give an output like:

    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