如何计算某列中的日期是否来自上个月

时间:2018-08-03 15:55:43

标签: tsql count countif

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

就我所知,但我不断收到错误消息:

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

2 个答案:

答案 0 :(得分:2)

将您的表情更改为此:

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)

这可能更容易阅读。

答案 1 :(得分:0)

可能,执行者选项是将此条件放在where子句中,而只需在SELECT中执行COUNT(*)。

SELECT COUNT(*)
FROM Table
WHERE LockDate BETWEEN @prevmonthstart AND @prevmonthend