2017-07-17 116 views
-1

我有一张表,其中包含custid,purchase_timestamp(dd-mm-yyyy)和warranty_period几天。 我需要在过去90天内购买的客户数量+在90天前购买的用户的数量,但其保修期限在最近90天之内。 我该如何编写SQL。由于SQL-如何在过去的90天内让用户得到保修

|**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

mysql或sql-server? – artm

+3

你为此写了什么查询?该查询面临什么问题?你需要展示你所做的。不要期望从现成的答案。这不是一个代码写入服务。 –

+0

我正在使用mysql –

回答

0

如果我理解你正确,你需要这样的事:

select count(custid) 
    from db 
    where datediff(day, purchase_timestamp, getdate()) <= 90 or warranty_period < 90 

datediff()给你两个日期之间的差。第一个参数day指定您需要天数的差异。

+0

是的,我确实尝试过,它在sql server中有效,但我现在看到他添加了mysql标签,所以我的回答对他来说没有用处。 –

+0

已解决。谢谢 –

相关问题