Actually, matching up the first pair (e.g., ID's 1 and 3) is not too tough. Matching up the second pair of the same values (e.g., ID's 4 and 8 in my post) gets much tougher.
See, it's easy enough to describe any GIVEN match:
SELECT TOP 1 * FROM table
WHERE CR = 30 AND [date] >= #1/3/2012#
ORDER BY [date]
But trying to do that with thousands of records... still thinking on it, but I admit to not seeing it yet.
I think I do see a way to do it by combining a pair of SQL queries and then some ASP (or ASP.NET or whatever) code. Would that be acceptable?