First I'd like to say that your query is really a mess. All the SELECT TOP 1
should be truned into joins. Now for your question, I'd do it something like this:
select *
from x_NonFullTimeEmployees hire
inner join timecard tc
on tc.EmployeeId = hire.EmployeeId
and tc.StartDate between hire.MeasurementStartDate and hire.MeasurementEndDate
and substring(
hire.StatusString,
datediff(dd, hire.MeasurementStartDate, tc.StartDate) +1,
1) = 'A'
where hire.BatchId = @batchid