ldStartPrev ................... ldEndPrev ldStartCurr ................... ldEndCurr | | | | >-------------------------> >-------------------------> <--------------------> <--------------------> <---------------------------< <---------------------------< <------------------------------------------> <------------------------------------------>
SELECT NET.Operator, NET.Route, NET.Start_Date, NET.End_Date, NET.RorF, NET.Passengers, ; IIF( NET.Route == NET.Mcl_Rte, " ", NET.Mcl_Rte) as ContrNum, NET.Family, NET.ClassType, ; 0000000 AS CurrPass, 0000000 AS PrevPass, op.Desc as OpDesc, ; Thisform.lmGetServeType( NET.Operator, NET.Route, NET.Start_date) as ServeType ; FROM NotETM NET ; JOIN Operator op ; On NET.Operator == op.Code ; WHERE ( ( m.ldStartCurr BETWEEN NET.Start_date AND NET.End_date) ; OR ( m.ldEndCurr BETWEEN NET.Start_date AND NET.End_date) ; OR ( NET.Start_date < m.ldStartCurr AND NET.End_date > m.ldEndCurr) ; OR ( NET.Start_date >= m.ldStartCurr AND NET.End_date <= m.ldEndCurr) ; OR ( m.ldStartPrev BETWEEN NET.Start_date AND NET.End_date) ; OR ( m.ldEndPrev BETWEEN NET.Start_date AND NET.End_date) ; OR ( NET.Start_date < m.ldStartPrev AND NET.End_date > m.ldEndPrev) ; OR ( NET.Start_date >= m.ldStartPrev AND NET.End_date <= m.ldEndPrev)) ; AND not DELETED("NotETM") ; ORDER BY NET.Operator, OpDesc, NET.Route ; INTO CURSOR csrNotETMPassengers NOFILTER READWRITEThis has been working fine up to now. BUT the report has just been run against two CONTIGUOUS date ranges. It seems that certain records from the PREV. period are being ommitted, probably because part of their range overlaps the CURR period. The totals for CURR period recs are fine.
WHERE (( ( m.ldStartCurr BETWEEN NET.Start_date AND NET.End_date) ; OR ( NET.Start_date < m.ldStartCurr AND NET.End_date > m.ldEndCurr) ; OR ( NET.Start_date >= m.ldStartCurr AND NET.End_date <= m.ldEndCurr) ; OR ( m.ldEndCurr BETWEEN NET.Start_date AND NET.End_date)) ; OR ; ( ( m.ldStartPrev BETWEEN NET.Start_date AND NET.End_date) ; OR ( NET.Start_date < m.ldStartPrev AND NET.End_date > m.ldEndPrev) ; OR ( NET.Start_date >= m.ldStartPrev AND NET.End_date <= m.ldEndPrev) ; OR ( m.ldEndPrev BETWEEN NET.Start_date AND NET.End_date))); AND not DELETED("NotETM") ;Can anyone figure this one out?