SELECT t1.un+1 AS uns, (SELECT MIN(t3.un-1) FROM testun t3 WHERE t3.un-1 >= t1.un+1) AS une FROM testun t1 WHERE NOT EXISTS (SELECT * FROM testun t2 WHERE t2.un = (t1.un+1))Here's solution for VFP
SELECT t1.un+1 AS unp, t1.un-1 AS unm, t1.un ; FROM testun t1 ; ORDER BY t1.un ; INTO CURSOR crs1 SELECT t1.unp AS uns, t1.un, RECNO() AS rn ; FROM crs1 t1 ; WHERE NOT EXISTS (SELECT * FROM crs1 t2 WHERE t2.un = t1.unp) ; INTO CURSOR crs2 SELECT t1.unm AS une, t1.un, RECNO()-1 AS rn ; FROM crs1 t1 ; WHERE NOT EXISTS (SELECT * FROM crs1 t2 WHERE t2.un = t1.unm) ; INTO CURSOR crs3 SELECT t2.uns, t3.une ; FROM crs2 t2 ; JOIN crs3 t3 ON t2.rn = t3.rn ; INTO CURSOR crsResult>Hi everybody,