0
少しの情報:人はチェックインしますが、チェックアウトしません。 、MySQLを使用して次の最後のエントリを返す
- メンバーの情報(名前、写真、ID:各チェックインなど、タイムスタンプ、MEMBERID、ここでクエリが返すために必要なデータです
と_checkinsテーブルにオートインクリメントエントリを作成します
- 過去30日間のチェックイン回数
- 最後にチェックインしてからの時間は、 がリストに登録されている場合は2時間未満でなければなりません。
- 最後にチェックインされた日付(今日は 、最後に_checkinsテーブルの "Created"エントリの次のもの)です。
最後の部分を除いてすべて機能しています。私はLIMITがソリューションの一部になると思っていますが、私はそれを正しく実装する方法を見つけることができません。 は、ここで私はこれまで持っているものです:
SELECT m.ImageURI, m.ID, m.FirstName, m.LastName,
ROUND(time_to_sec(timediff(NOW(), MAX(ci.Created)))/3600, 1) as
'HoursSinceCheckIn', CheckIns
FROM _checkins ci LEFT JOIN _members m ON ci.MemberID = m.ID
INNER JOIN(SELECT MemberID, COUNT(DISTINCT ID) as 'CheckIns'
FROM _checkins
WHERE(
Created BETWEEN NOW() - INTERVAL 30 DAY AND NOW()
)
GROUP BY MemberID
) lci ON ci.MemberID=lci.MemberID
WHERE(
ci.Created BETWEEN NOW() - INTERVAL 30 DAY AND NOW()
AND TIMESTAMPDIFF(HOUR, ci.Created, NOW()) < 2
AND ci.Reverted = 0
)
GROUP BY m.ID
ORDER BY CheckIns ASC
....最後チェックインは今日または次の最後のエントリにカウントされませんか?これらは必ずしも同じものではありません。あなたが「最後のチェックインは2時間以上前です」 –
真。彼らは1日に1回以上チェックインできるので、最後に私が探しているエントリーの次のものになるでしょう。一般的な考え方は、定期的にジムに出席していないメンバーにスタッフが手を差し伸べることができるように顧客保持ツールを構築することです。つまり、1日に1回以上チェックインするメンバーはリストに載っていない可能性がありますが、それは可能です。 – digiteeb