I am trying to write a Business Object report to show a list of the people who have not returned a timesheet on a selected date, but I can’t figure out how to stop the SQL query returning multiple entries for individuals.
My Staff_Table contains 2 columns – Employee No & Name
My Timesheet_Table contains, among other things, Employee No & Week_Ending_Date.
I can easily write a statement to return all users who have entered a timesheet with a Week_Ending_Date of e.g. 10/08/2012. However, if I try to return a list of all those who have not enetered a timesheet for 10/08/2012, I pick up every single timesheet in the table which does not have that date, so, for example, if a person has submitted 100 timesheets and only 1 of them is for 10/08/2012, the results will show him 99 times.
What I need is a fixed list of everyone on the Staff_Table who has not submitted for that date, showing once only.
I tried a Union with NOT EXISTS but either I’m doing it wrong or it simply isn’t appropriate.
Can anyone point me in the right direction?
Try adding DISTINCT to your query
ie
Your query should look something like
or