Use a relationship that uses a date range to match to the desired set of records. Specify a sort order in this relationship that sorts the related records by date. A portal to this table occurrence will list the first occurrence as the first portal row, the second will be in the second portal row... You may not need to sort the relationship as an unsorted relationship will list the first record to be created first and so forth. Sorting just makes sure in case the transactions did not get created in correct order. (so for a contest, an unsorted relationship may be better to avoid people changing dates to win the contest...)
You can then use GetNthRecord to access specific records from the related table.
GetNthRecord ( 2, RelatedTable::Field )
will return the value of field from the 2nd related record which would be the second portal row in the example that I described.
Here's a relationship that matches by a date range:
LayoutTable::Date1 < SalesTransactions::Date AND
LayoutTable::Date2 > SalesTransactions::Date
Date1 and Date2 would be used to specify your date range.
A completely different approach would be to perform a find on a SalesTransactions layout for a date range (Date1...Date2) and then sort the found records by date (or refer to their unsorted order as the oldest record found will be first) to find the first, second, etc transaction in that date range.
Edit Note: Morning caffeine was falling down on the job and I had the inequalities reversed.
Thanks Phil - you are a true rock star of the forums! I will try both to see which works best