I am not sure how you will be able to use a select statement to exclude the data but you should be able to get the values you want by using a variable formula or a Running Total (my preferred method) and comparing it against your full record set.
group on inmate (ID preferrable so you do not group 2 people with the same name)
Sort by {Audit_Trail.DateStamp}
Create a Running Total as "OutCount"
Field to summarize = Inmate ID
Type of Summary=Distinct Count
Evaluate=Use a formula
{Audit_Trail.FieldName} = Temporary_Out and {Audit_Trail.BeforeValue}=0 and {Audit_Trail.DateStamp}: 02/04/2010 <= {?date param}
and
(next({table.inmateid})<>{table.inmateid}
or
(next({table.inmateid})={table.inmateid} and
next({Audit_Trail.DateStamp})>{?date param})
Reset=Never
Place thi sint he detail section and you should see it it count up once per inmate that was out on the date you enter for the param.
plac eit in the report footer for a total.
You can use it for suppressing names and also to subtract from your disticnt count of all to get a number that were 'in' vs. 'out'
Does this work?