SELECT obligation, MIN(start_dt) AS MinStartDate ; FROM mytable ; WHERE comp_dt = {} ; GROUP BY 1 ; INTO CURSOR crsTemp SELECT ct.MinStartDate, mt.* ; FROM mytable mt ; JOIN crsTemp ct ON ct.obligation = mt.obligation ; ORDER BY ct.MinStartDate, mt.obligation, mt.seq INTO CURSOR crsResult>I have a table of collateral items. The collateral items belong to an loan. The collateral table has the field obligation, seq, desc, start_dt, comp_dt. One obligation can have many collateral records, so the seq field is a numeric field that starts at 1 for each new obligation collateral item.