对于我们的抵押贷款,我们会跟踪“锁定日期”。我想编写一个表达式,计算上个月的锁定日期的数量(我的sql系统中有一个令牌用于上个月的开始日期,上个月的结束日期或上个月的名称)
就我所知,但我不断收到错误消息:
COUNT(LockDate)
CASE WHEN LockDate BETWEEN @prevmonthstart AND @prevmonthend
答案 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