*-- set enginebehaviour 80/90 <g> SELECT ; ET.Mcl_Rte, ET.Operator, ET.Route, ET.Class ; , Max(ET.Date) as et_date, Max(ET.RorF) as et_RorF ; , Max(op.Desc) as OpDesc ; , Max(RF1.ServType) as ServType ; , IIF( ET.Route == ET.Mcl_Rte, " ", ET.Mcl_Rte) as ContrNum ; , SUM( IIF( BETWEEN( ET.date, m.ldStartCurr, m.ldEndCurr), ET.Number, 0000000)) AS CurrPass ; , SUM( IIF( BETWEEN( ET.date, m.ldStartPrev, m.ldEndPrev), ET.Number, 0000000)) AS PrevPass ; FROM ETMData ET ; JOIN Operator op ; On op.Code == ET.Operator ; JOIN RF1 ; On RF1.Operator == ET.Operator ; and RF1.ERoute == ET.Route ; WHERE ET.Operator == m.lnOpCode ; And ( ET.date BETWEEN m.ldStartCurr and m.ldEndCurr ; OR ET.date BETWEEN m.ldStartPrev and m.ldEndPrev) ; GROUP BY ET.Mcl_Rte, ET.Operator, ET.Route, ET.Class ; ORDER BY ET.Operator, ET.Route, ET.Class ; INTO CURSOR csrETMPassengers NOFILTERsince this should be equivalent (==) and filters the first table looked at.