select fsl_choIdDate, datepart( hour, fsl_choIdDate ) byHour, fsl_choIdBy, fsl_choIdStatus, m.fspro_userId, m.firstName, m.lastName, opr.ownerId, opr.fsltablecode, opr.operatorId from tbl_OPR_ClientOperators opr with (nolock) inner join tbl_CHO_Operators cho with (nolock) on cho.cho_id = fsl_choId inner join tbl_Fspro_members m with (nolock) on m.fspro_userId = opr.fsl_choidBy where opr.fsl_choIdDate is not null and opr.fsl_choId > 0 and convert( datetime, convert( varchar, fsl_choIdDate, 101 )) >= and convert( datetime, convert( varchar, fsl_choIdDate, 101 )) < and m.email = order by byHour, fsl_choIdDate
From:   To:

By:

select min( ma.eventTime ) eventTime from tbl_TRK_MemberActivity ma inner join tbl_FSPRO_Members mem on ma.fspro_userId = mem.fspro_userId where mem.email = and cast( eventTime as date ) = Logged in at #timeformat( qmd_login.eventTime, "hh:mmtt" )#

select min( fsl_choIdDate ) startTime from qmd_links First Mapping at #timeformat( qmd_start.startTime, "hh:mmtt" )#

Goal: #_calculation#
Actual: #qmd_links.recordCount#

Total Gaps (> 5 minutes): #structCount( _gaps )#
Average Gap: #numberformat( arrayAvg( listToArray( _gaps.avgGap ) ), "00" )# minutes
Longest Gap: #arrayMax( listToArray( _gaps.avgGap ) )# minutes at #lstimeformat( structFindValue( _gaps, listFirst( _gapTimeList ) )[1].owner.date1, "hh:mmtt" )#

List of Gap Time
#gapTime# minutes at #lstimeformat( _structFindValue[i].owner.date1, "hh:mmtt" )#
#gapTime# minutes at #lstimeformat( _structFindValue[1].owner.date1, "hh:mmtt" )#