CREATE CURSOR MyTable (yearmonth C(6)) INSERT INTO MyTable VALUES('200609') INSERT INTO MyTable VALUES('200609') INSERT INTO MyTable VALUES('200608') INSERT INTO MyTable VALUES('200608') INSERT INTO MyTable VALUES('200607') INSERT INTO MyTable VALUES('200607') INSERT INTO MyTable VALUES('200606') INSERT INTO MyTable VALUES('200606') INSERT INTO MyTable VALUES('200605') INSERT INTO MyTable VALUES('200605') INSERT INTO MyTable VALUES('200604') INSERT INTO MyTable VALUES('200604') INSERT INTO MyTable VALUES('200603') INSERT INTO MyTable VALUES('200603') INSERT INTO MyTable VALUES('200602') INSERT INTO MyTable VALUES('200602') INSERT INTO MyTable VALUES('200601') INSERT INTO MyTable VALUES('200601') INSERT INTO MyTable VALUES('200512') INSERT INTO MyTable VALUES('200512') INSERT INTO MyTable VALUES('200511') INSERT INTO MyTable VALUES('200511') INSERT INTO MyTable VALUES('200510') INSERT INTO MyTable VALUES('200510') INSERT INTO MyTable VALUES('200509') INSERT INTO MyTable VALUES('200509') INSERT INTO MyTable VALUES('200508') INSERT INTO MyTable VALUES('200508') INSERT INTO MyTable VALUES('200507') INSERT INTO MyTable VALUES('200507') INSERT INTO MyTable VALUES('200506') INSERT INTO MyTable VALUES('200506') *** I assume that you have some variables which define the period you need m.lcPeriodBegin = [200510] m.lcPeriodEnd = [200609] SELECT yearmonth,; INT((VAL(LEFT(yearmonth,4))*12+VAL(RIGHT(yearmonth,2)))-; (VAL(LEFT(m.lcPeriodBegin,4))*12+VAL(RIGHT(m.lcPeriodBegin,2)))+1) AS MaxMini; FROM MyTable; GROUP BY yearmonth; WHERE yearmonth BETWEEN m.lcPeriodBegin AND m.lcPeriodEnd; ORDER BY yearmonth DESC; INTO CURSOR crsTest BROWSE NORMAL