On 28 Jan 2010, at 6:42, Justin Giboney wrote:

See if this logic helps you, it will get you close, you may need to refine it

basically it finds out how many years it has been since the person
signed up, subtracts 3 from it, then adds that number to the sign up
date and gets all records after that new date

SELECT * FROM Users u, User_Actions ua
WHERE u.id = ua.user_id
AND ua.date >= ADDDATE(u.sign_up_date, INTERVAL (YEAR(NOW()) -
YEAR(u.sign_up_date)) - 3) YEAR)

My client just changed the requirements slightly. I tried massaging your suggested code to meet the new requirements but couldn't get it to work. Here is the new logic:

select all user actions with completed date after most recent tri- annual program anniversary


So, if the program started on 1 Aug 2000, then the query should return all actions completed after 1 Aug 2009. Does that make sense?

1 Aug 2000 = program start
31 July 2003 = first anniversary
31 July 2006 = second anniversary
31 July 2009 = third and most recent anniversary

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________

UPHPU mailing list
[email protected]
http://uphpu.org/mailman/listinfo/uphpu
IRC: #uphpu on irc.freenode.net

Reply via email to