Bitt,
The null entries in the data screw up the data=index_data since data(NULL)<>index_data(NULL). Your question makes perfect sense as you didn't have the data.
Mach,
Hadn't thought of concatenation. It should work great, but I don't have mathematical certainty that two concatenations wouldn't be equal (for example to entries with adjacent data pairs of (10,.234 = 10.234) and (1,0.234 = 10.234). Highly unlikely with so many data records - I know. However, this is the easiest to code, and I can check by looking at the total number or records of the resulting index table - they should equal the number of records in the source table.
gbeer,
Very cool. In fact I've already got a similar module written to take single year entries into ranges (I have discontinuous year ranges for a given description - so a straight up min/max group-by query didn't work). The code will be a bit longer because of the large quantity of data fields, but it should be mathematically bullet-proof for all data sets.
Thanks guys. I really appreciate the help.
-Zeke
_________________________
WWFSMD?