首页 > 解决方案 > 如果列中的日期来自上个月,如何计算

问题描述

对于我们的抵押贷款,我们会跟踪“锁定日期”。我想写一个表达式来计算上个月发生的锁定日期的数量(我们在我的 sql 系统中有一个用于上个月开始、上个月结束或只是上个月名称的标记)

这是据我所知,但我不断收到错误消息:

COUNT(LockDate)
CASE WHEN LockDate BETWEEN @prevmonthstart AND @prevmonthend

标签: tsqlcountcountif

解决方案


将您的表达式更改为:

COUNT(CASE WHEN LockDate BETWEEN @prevmonthstart AND @prevmonthend THEN LockDate ELSE NULL END)

你应该得到你正在寻找的结果。完成同样事情的另一种方法是将 SUM 与条件表达式一起使用:

SUM(CASE WHEN LockDate BETWEEN @prevmonthstart AND @prevmonthend THEN 1 ELSE 0 END)

这可能更容易阅读。


推荐阅读