SQL 具有两个条件的服务器 CASE 语句

SQL Server CASE statement with two conditions

我有一个示例 table,其中包含服务台呼叫中心数据。在此 table 中存储了通话记录和相关内容。这个 table 有一个 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 日,我想记录前一天的通话记录

使用 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