具有两个条件的SQL Server CASE语句

时间:2018-07-10 12:57:54

标签: sql-server tsql select case between

我有一个示例表,其中包含帮助台呼叫中心数据。在该表中,存储了呼叫日志和相关的东西。该表具有一个call_no和一个date_logged列。

我正在尝试使用一种情况,我可以得到给定时间段内的呼叫总数。

下面是示例代码。

SELECT
    COUNT(CASE WHEN CALLS.DATE_LOGGED BETWEEN '2018/04/06' AND '2018/04/07' 
               THEN calls.CALL_NO END) AS "CALLS LOGGED YESTERDAY"
FROM 
    LOGGED_CALLS CALLS

这给了我系统中的调用总数,我不想在这种情况之外使用where子句。

让我们假设再次是4月7日,我想记录前一天的通话记录

1 个答案:

答案 0 :(得分:6)

使用SUM而不是COUNT:

SELECT
  SUM(CASE WHEN CALLS.DATE_LOGGED BETWEEN '2018/04/06' AND '2018/04/07' 
              THEN 1 ELSE 0 END) AS "CALLS LOGGED YESTERDAY"

FROM LOGGED_CALLS CALLS