フィールドUserIdとaddedDateを持つ1つの "User"テーブルがあります。 90日前にためのシステムで、先月と今月中に追加されていない日付を追加 -MySql Query:指定された日付の値から最近90日以内に存在しないデータを選択するにはどうすればよいですか?
は、私は、ユーザーのデータを取得する必要があります。
は、ユーザー表が
Userid addedDate enddate
001 2017-07-01 2017-09-05
002 2017-02-25 2017-02-01
003 2017-06-01 2017-09-21
003 2017-04-25 2017-05-29
004 2017-06-01 2017-09-21
005 2017-06-05 2017-09-07
005 2017-01-01 2017-01-31
は、私は、出力は次のように必要があります。ここでは
userid
001
004
005
003 90日前までために、その使用可能なシステムとして(そのない新規ユーザーとして必要とされていないがを追加しました日付)。最後の蛾や現在の蛾には002が追加されていないので、新しいユーザーとして考えることもできません。
私は、クエリの下にしようとしたが、その正常に動作していない:
select userid from usertbl final
WHERE final.userid NOT IN (
SELECT meb.userid
FROM usertbl meb
INNER JOIN
(
SELECT mc.userid, addeddate, enddate
FROM usertbl mc
WHERE mc.enddate > NOW()
AND mc.addeddate > DATE_ADD(NOW(), INTERVAL -90 DAY)
) s
ON s.userid = meb.userid
AND
(
meb.enddate > DATE_ADD(s.addeddate,INTERVAL -90 DAY)
AND meb.enddate <> s.enddate
)
)
は、いくつかの提案を入力してください。
Btw、これはオフトピックです。 – tilz0R
@ tilz0Rそれはなぜでしょうか?私は、サンプルデータ、希望の結果、さらには説明とクエリOPが試したものを参照してください。実際にこれはどのようにする必要がありますSQLの質問です。 – fancyPants