我需要创建一个显示以下内容的SQL查询:
'截至当前日期超过90天的活动帐户总数'
日期来自sql查询,即:
select date from currentdatetable
现在我的查询是计算来自accountstable的所有活动帐户,以便我的查询如下:
select count(*) from accountstable
我的问题是如何声明accountstable的日期比当前日期的日期大90天?
我目前的代码:
select count(*) from accountstable at where at.date > (select date from currentdatetable)
答案 0 :(得分:0)
select count(*) from accountstable at where at.date > (select dateadd(day, -90,date) from currentdatetable)
答案 1 :(得分:0)
使用MS SQL-Server,您可以使用DATEADD
+ DATEDIFF
:
SELECT Count = Count(*),
Date = (SELECT TOP 1 [date]
FROM currentdatetable)
FROM accountstable a
WHERE Datediff(dd, a.[date], (SELECT TOP 1 [date]
FROM currentdatetable)) > 90
答案 2 :(得分:-1)
您可以通过仅选择更大的日期来优化上限答案:
从accountstable中选择count(*),at.date> (从当前日期ORDER BY日期DESC中选择TOP 1 dateadd(day,-90,date))