SELECT Etats * INDEX ON ddebut TAG ddebut * INDEX ON dfin TAG dfin *1 INDEX ON ntype TAG ntype *2 INDEX ON nPoscat TAG nPoscat SELECT DatesFiltred * INDEX ON ntype TAG ntypeIndex * INDEX ON nPoscat TAG oscatIndex SELECT Etats.nPoscat, ; Etats.ccat_physiq ,; && ATTENTION, NOT GROUPED Etats.ntype , ; COUNT( DatesFiltred.ddate ) AS "Ncat" , ; Etats.ltransfert ; FROM FORCE DatesFiltred JOIN Etats ; ON DatesFiltred.ddate BETWEEN m.D_debut AND m.d_fin; && this is VFP optimization for constant AND Etats.nPoscat = DatesFiltred.nPoscat AND Etats.ntype=DatesFiltred.ntype ; AND Etats.ddebut<=DatesFiltred.ddate AND Etats.dfin>=DatesFiltred.ddate ; GROUP BY ltransfert , Etats.ntype , Etats.nPoscat ; && IMPLICIT ORDER ON VFP INTO CURSOR Sum_Categ_per_periodeor try:
SELECT Etats * INDEX ON ddebut TAG ddebut * INDEX ON dfin TAG dfin * INDEX ON ntype TAG ntype * INDEX ON nPoscat TAG nPoscat SELECT DatesFiltred *1 INDEX ON ntype TAG ntypeIndex *2 INDEX ON nPoscat TAG oscatIndex SELECT Etats.nPoscat, ; Etats.ccat_physiq ,; && ATTENTION, NOT GROUPED Etats.ntype , ; COUNT( DatesFiltred.ddate ) AS "Ncat" , ; Etats.ltransfert ; FROM FORCE Etats JOIN DatesFiltred ; ON DatesFiltred.ddate BETWEEN m.D_debut AND m.d_fin; && this is VFP optimization for constant AND DatesFiltred.nPoscat=Etats.nPoscat AND DatesFiltred.ntype = Etats.ntype; AND DatesFiltred.ddate BETWEEN Etats.ddebut AND Etats.dfin; GROUP BY ltransfert , Etats.ntype , Etats.nPoscat ; && IMPLICIT ORDER ON VFP INTO CURSOR Sum_Categ_per_periode