CREATE CURSOR Test (iCode I, dDate D, nPrice N(6,2)) INSERT INTO Test VALUES (1010 , DATE(2006,12,23 ), 63.25) INSERT INTO Test VALUES (1010 , DATE(2006,12,24 ), 63.00) INSERT INTO Test VALUES (1010 , DATE(2006,12,25 ), 63.75) INSERT INTO Test VALUES (1010 , DATE(2006,12,26 ), 63.00) INSERT INTO Test VALUES (1010 , DATE(2006,12,27 ), 64.50) INSERT INTO Test VALUES (1020 , DATE(2006,12,23) , 130.75) INSERT INTO Test VALUES (1020 , DATE(2006,12,24 ), 130.00) INSERT INTO Test VALUES (1020 , DATE(2006,12,25 ), 130.50) INSERT INTO Test VALUES (1020 , DATE(2006,12,26 ), 132.00) INSERT INTO Test VALUES (1020 , DATE(2006,12,27 ), 131.75) INSERT INTO Test VALUES (1030 , DATE(2006,12,23 ), 83.00) INSERT INTO Test VALUES (1030 , DATE(2006,12,24 ), 82.75) INSERT INTO Test VALUES (1030 , DATE(2006,12,25 ), 83.00) INSERT INTO Test VALUES (1030 , DATE(2006,12,26 ), 85.00) INSERT INTO Test VALUES (1030 , DATE(2006,12,27 ), 88.50) INSERT INTO Test VALUES (1040 , DATE(2006,12,23 ), 76.25) INSERT INTO Test VALUES (1040 , DATE(2006,12,24 ), 74.75) INSERT INTO Test VALUES (1040 , DATE(2006,12,25 ), 74.75) INSERT INTO Test VALUES (1040 , DATE(2006,12,26 ), 74.25) INSERT INTO Test VALUES (1040 , DATE(2006,12,27 ), 76.25 ) SELECT B1.iCode, B1.dDate, B1.nPrice ; FROM Test B1 ; JOIN Test B2 ; ON B1.iCode = B2.iCode ; AND B1.dDate <= B2.dDate ; GROUP BY 1, 2, 3 ; HAVING CNT(*) <= 3 ; INTO CURSOR TenMostRecentThe only change from the earlier version of the query is to choose only 3 for each code instead of 10.