D_debut = {^2005/04/01} d_fin = {^2005/04/30} SELECT ; H.iemployeeid; , COUNT(p.iid) totalp1; , COUNT(p2.iid) totalp2; FROM Horaire H; LEFT JOIN PAUSE P ON P.iid = H.cpauseid; LEFT JOIN PAUSE P2 ON P2.iid = H.cpauseid2; WHERE (H.cpauseid <> 0 OR H.cpauseid <> 0); AND H.ddate BETWEEN m.D_debut AND m.d_fin; GROUP BY 1 ; INTO CURSOR TEMP BROWSE * WITH REFERENTIAL Integrity THIS IS LIKE COUNT cpauseid#0 * DAY(NULL) IS A FAST CAST SELECT ; H.iemployeeid; , COUNT(EVL(H.cpauseid,DAY(NULL))) totalp1; , COUNT(EVL(H.cpauseid2,DAY(NULL))) totalp2; FROM Horaire H; WHERE (H.cpauseid <> 0 OR H.cpauseid <> 0); AND H.ddate BETWEEN m.D_debut AND m.d_fin; GROUP BY 1 ; INTO CURSOR TEMP2 BROWSE RETURNPoint 1:
INDEX ON DELETED() TAG DELRECThis is not good.
INDEX ON DELETED() TAG DELREC BINARY && 4X faster and bloat insensiblebut this is not the best solution.
* erase DELREC * change INDEX ON iid FOR NOT DELETED() TAG primaryWith this VFP9 use primary for to exclude the deleted records,