CREATE CURSOR dDate ( dDate D ) FOR i = 1 TO 180 INSERT INTO dDate VALUES( {^2005/01/01} - 1 + m.i ) ENDFOR CREATE CURSOR Etats (dDebut D, dFin D , iresidentid i , iid i ) *-- je veux touver toutes les dates NON comprises entre le {^2005/01/08} *-- et le {^2005/06/25} pour chaque resident. INSERT INTO Etats VALUES ({^2005/01/08}, {^2005/03/30} , 1753 , 1 ) INSERT INTO Etats VALUES ({^2005/04/10}, {^2005/06/25} , 1753 , 2 ) INSERT INTO Etats VALUES ({^2005/01/10}, {^2005/06/25} , 1754 , 2 ) SELECT dDate,iresidentid ; FROM dDate ; JOIN (SELECT A.iresidentid,A.dFin+1 dHoleStart,MIN(B.dDebut)-1 dholeEnd ; FROM Etats A JOIN Etats B ON A.iresidentid = B.iresidentid AND A.dFin < B.dDebut; GROUP BY 1,2) Holes ON dDate BETWEEN dHoleStart AND dholeEnd