我想执行一个查询,计算open_date by store存储的60天内关闭日期的行数。
样品:表A.
Store Open Date Close Date
A 2017-01-01 2017-01-31
B 2017-02-02 Null
A 2017-01-02 2018-01-21
提前致谢。
使用datediff()
SELECT count(*) FROM [Table A] WHERE datediff(Close_date,Open_date) <= 60;
试试下面的查询:
SELECT count(*) numberOfDays
FROM TableA
WHERE close_date>=CURRENT_DATE - INTERVAL 60 DAY;
SELECT count(*) numberOfDays
FROM TableA
WHERE close_date>=CURRENT_DATE - INTERVAL '60' DAY;
select store, open_date, count(*)
from tableA
where close_date between date_sub(open_date, interval 60 DAY) and date_add(open_date, interval 60 DAY)
group by store, open_date;
这将有效,但您的开始日期必须是当前日期或open_date(这是您的问题)。鉴于每行的open_date看起来不同,你的计数将会很有趣。
此外,count将始终返回一些内容,因此除非使用键入0(零)的if或case语句,否则它将返回0而不是null。