Please tell us more about your tables and relationships. How many ExpirationDates are current?
You might consider a boolean field that indicates that the member is current. Each year when a member renews, you update his/her boolean to No, create your new year record and make that the Current (Y).
I'm a little confused with
a member has multiple expirations.
.
Only 1 expiration date per member can be the EffectiveExpirationDate, right? I would think any ExpirationDates < Today are ""history"".
You may want to find the Max(ExpirationDate) for each member.
****untested code****
Code:
Select MemberId, ExpirationDate
FROM yourTable
WHERE
ExpirationDate = (Select Max(ExpirationDate) from yourTable as X
WHERE x.MemberId = MemberId)
This should give you the most recent ExpirationDate for each Memberid
Good luck.