CREATE CURSOR fm (freq Int, mon Int) INSERT INTO fm VALUES (2, 4) INSERT INTO fm VALUES (6, 6) INSERT INTO fm VALUES (1, 3) INSERT INTO fm VALUES (2, 11) INSERT INTO fm VALUES (12, 1) SELECT freq, mon, mon AS cmo ; FROM fm ; UNION ; SELECT freq, mon, EVL((mon + 1) % 12, 12) AS cmo ; FROM fm ; WHERE freq = 12 ; UNION ; SELECT freq, mon, EVL((mon + 2) % 12, 12) AS cmo ; FROM fm ; WHERE freq IN (6, 12) ; UNION ; SELECT freq, mon, EVL((mon + 3) % 12, 12) AS cmo ; FROM fm ; WHERE freq IN (4, 12) ; UNION ; SELECT freq, mon, EVL((mon + 4) % 12, 12) AS cmo ; FROM fm ; WHERE freq IN (3, 6, 12) ; UNION ; SELECT freq, mon, EVL((mon + 5) % 12, 12) AS cmo ; FROM fm ; WHERE freq = 12 ; UNION ; SELECT freq, mon, EVL((mon + 6) % 12, 12) AS cmo ; FROM fm ; WHERE freq IN (2, 4, 6, 12) ; UNION ; SELECT freq, mon, EVL((mon + 7) % 12, 12) AS cmo ; FROM fm ; WHERE freq = 12 ; UNION ; SELECT freq, mon, EVL((mon + 8) % 12, 12) AS cmo ; FROM fm ; WHERE freq IN (3, 6, 12) ; UNION ; SELECT freq, mon, EVL((mon + 9) % 12, 12) AS cmo ; FROM fm ; WHERE freq IN (4, 12) ; UNION ; SELECT freq, mon, EVL((mon + 10) % 12, 12) AS cmo ; FROM fm ; WHERE freq IN (6, 12) ; UNION ; SELECT freq, mon, EVL((mon + 11) % 12, 12) AS cmo ; FROM fm ; WHERE freq = 12 ; INTO CURSOR calcFM SELECT * FROM calcFM WHERE cmo = 5>This is a simplified case.
>FREQ MONTH >2 4 >6 6 >1 3 >2 11 >12 1 >>