我有一张带有custid,purchase_timestamp(dd-mm-yyyy)和warranty_period的表格。 我需要在过去90天内购买的客户数量以及在90天之前购买的用户数量,但他们的保修期在过去90天之间。 我怎么能为此编写SQL。感谢
|**custid | warranty_period | purchase_timestamp
|1 | 365 | 03-01-2017
|2 | 30 | 03-04-2017
|3 | 10 | 25-05-2017
|4 | 30 | 20-05-2017
|5 | 365 | 04-06-2017
|6 | 100 | 18-06-2017
|7 | 90 | 30-06-2017
|8 | 10 | 05-07-2017
|9 | 30 | 09-07-2017
|10 | 365 | 17-07-2017**
SELECT COUNT(custid)
FROM db
HAVING SUM(warranty_period+purchase_timestamp)> getdate()-90 or purchase_timestamp>getdate()-90
这是我的试用查询,它只是不移动
答案 0 :(得分:0)
如果我理解你,你需要这样的东西:
select count(custid)
from db
where datediff(day, purchase_timestamp, getdate()) <= 90 or warranty_period < 90
datediff()
为您提供两个日期之间的区别。第一个参数day
指定您希望以天为单位的差异。