我需要计算datediff <= 1的所有订单。我使用COALESCE函数,因为有时Date1可以为null。
SELECT COUNT(*)
FROM Orders
WHERE DATEDIFF(dd,COALESCE(Date1, Date2),Date0) <= 1
有没有办法我只能计算工作日(星期一至星期五)?
谢谢。
您可以使用DATEPART忽略周六和周日(其dw分别为7和1)来将计数更改为有条件的总和。
SELECT SUM(CASE WHEN DATEPART(dw, COALESCE(Date1, Date2)) BETWEEN 2 AND 6
THEN 1 ELSE 0 END)
FROM Orders
WHERE DATEDIFF(dd,COALESCE(Date1, Date2),Date0) <= 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句