I guess it depends on whether you want actual data or just a report. By a report I mean that you could generate an absentee list on demand using a join and 'NOT IN'. You could also have a tool that runs on a schedule and generates that list after each class and saves the result. Other than that, I agree that your only option would be to generate records for all expected and mark them as absent by default, updating as they scan in. Mind you, you'd need some tool executed automatically or manually to generate that list before the class so you could just as easily generate a list of only absentees after the class.