2017-07-17 25 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()はあなたに2つの日付の差を与えます。最初の引数dayは、差異を日数で指定します。

+0

はい、私はそれを試してみましたが、それはSQLサーバーで動作しますが、私は彼がmysqlタグを追加したので、私の答えは彼にとって無駄です。 –

+0

解決済み。ありがとう –

関連する問題