You could sort ascending on the field AnniversaryDate, and go to the last record. That will be the most recent date.
What is the SaleCategory table, and is there another table besides Customer and SaleCategory? Where is the anniversarydate stored? It appears, from your example of returned data, that you're seeing duplicates, with the same customer, category and date?
Does the "most recent date" mean the most recent for the customer? The most recent for a customer/salecategory combination?
It seems like, at some point in this structure, you'll need a TO to sort the dates in question in descending order. You can then calculate the key of the "top" record in that sort order, and make a second TO relating the "top" fk to the pk of the record you found. You could then GTRR.
Sorry if that sounds obscure, but with some more information about the tables and purposes, it might be easier to explain.