SELECT 6 Set Order To CODE Set Filter To BETWEEN(code,m.codefm,m.codeto) AND admtd=1 .and. BETWEEN(aattend,m.aattendfm,m.aattendto) LOCATE if found() UPDATE (ALIAS(6)); SET pattend = codeSum.nCode; , aattend = codeSum.nCodeP; , attend = NVL(100*codeSum.nCodeP/EVL;(codeSum.nCode,NULL),0) FROM (ALIAS(6)) A6 ; JOIN (SELECT ; code ; , CAST(COUNT(*) AS I) nCode ; , CAST(COUNT(CAST(EVL(category="P",NULL) AS L)) AS I) nCodeP; FROM ALIAS(11); WHERE date BETWEEN m.attendfm and m.attendto; AND code BETWEEN m.codefm and m.codeto; GROUP BY 1) codeSum; ON codeSum.code=A6.code; WHERE admtd=1 && .and. BETWEEN(aattend,m.aattendfm,m.aattendto) YOU CAN ADD THIS IF IT IS NECESSARY Select 6 LOCATE