Using MS Access. I’m sorry that the title is vague–i just don’t exactly know how to describe what type of problem this is, I just know that I need to join two tables or queries to solve it.
I have a OrgHistory table that shows which organization each person (by ID) joined on a certain date (you can only be a member of one org at a time):
Person | Org | JoinDate
-----------------------
123 | abc | 3/2/2011
456 | abc | 4/23/1925
123 | def | 5/12/2011
I also have an Activities table:
Person | Activity | ActivityDate
--------------------------------
123 | eat | 3/23/2011
123 | sleep | 6/25/2011
456 | walk | 7/20/1985
I want to find out, for each record in Activities, which organization the person was a member of on the date of the activity. I’m thinking this might involve converting the JoinDate values into a set of ranges and matching ActivityDate to the appropriate interval, but I’m a little confused about how to design the query in this case–how do I create ranges and match an individual value to a range?
I don’t think partition() will work because I’m not trying to hold multiple JoinDate values in a known quantity of buckets.
I can’t promise this is the most efficient way, but it works in Access with the test data you provided: