Помогите с построением запросов:
1) Надо починить запрос, чтобы он выбирал и добавлял только новые данные о времени работы (Чтобы не дублировало старые данные)
в модуле csvParser:
strSQLchk = "SELECT SourceData.pid, SourceData.fday, SourceData.ftime, SourceData.punch " & _
"FROM (SELECT atWT.pid, atWT.fDay, atWT.fTime, atWT.punch " & _
"FROM atWT INNER JOIN SourceData ON (atWT.pid = SourceData.pid) AND (atWT.fDay = SourceData.fday) " & _
"WHERE ((SourceData.PID) Is Not Null) " & _
"GROUP BY atWT.pid, atWT.fDay, atWT.fTime, atWT.punch " & _
") as Q2 " & _
"RIGHT JOIN SourceData ON Q2.pid=SourceData.pid " & _
"WHERE ((Q2.fday) <> (SourceData.fday)) " & _
"GROUP BY SourceData.pid, SourceData.fday, SourceData.ftime, SourceData.punch "
Он работает, но не совсем хорошо - если данных по дате нет совсем - то добавляет только новые, но если данные по дате есть - добавляет дубль.
2) Контроль корректности данных при начальном импорте.
Сейчас при импорте данных из цсв работает контроль правильности, группируя данные по дате. Однако, если смена будет начинаться в один день и заканчиватся в другой - это работать не будет.
Реализовано запросом:
strSql = "SELECT SourceData.pid, SourceData.Sname, SourceData.Fname, SourceData.fday " & _
"FROM SourceData GROUP BY SourceData.pid, SourceData.Sname, SourceData.Fname, SourceData.fday " & _
"HAVING ((Count(*) Mod 2)=1)"
Как поменять, чтоб работало для смен начинающихся в разные сутки?
http://www.sql.ru/forum/1210249/postroenie-zaprosov