for your edate problem, try this sql
Code:
SELECT Q1.wd_id, Q1.team_id, Q1.AssignNum, Q1.sDate, [edat]-([edat]=[sdate]) AS eDate
FROM (SELECT source.wd_id, source.team_id, source.AssignNum, Min(source.date_full) AS sDate, Max(source.date_full) AS eDat
FROM source
GROUP BY source.wd_id, source.team_id, source.AssignNum
ORDER BY source.AssignNum) AS Q1;
edit: this solution is based on your description. I did not understand what 'or whatever the last "missing date" before the next entry is' means. What about the last entry where there is no later date?
or on the fly as interim output
you might want to take a look at the solution in this thread which on the face of it is very similar to yours in generating an assign num value
https://www.accessforums.net/showthread.php?t=89214
the function will need some modification to meet your specific requirements for incrementing
This way you might find better to get your dates in order before generating your assign num value