0
breezee
05.03.19
✎
18:54
|
Коллеги, добрый день.
ЗУП 3.1
Есть задача - сделать отчет, который сравнивает табель учета рабочего времени, введенный за месяц с 2 табелями, 1 введен за первую половину месяца, 2 за вторую половину месяца. Соединять по сотруднику и дате, выводить только строки, где есть отличия. Документы могут быть не проведены.
Меня смущает структура документа. В документе есть ТЧ "ДанныеОВремени". Есть колонка сотрудника и 31 колонка "День" + Номер дня, т.е. День1, День2, День3... День31.
Сразу в голову пришло взять левое соединение по сотруднику и в условиях прописать "Табель1.День1 <> Табель2.День1 Или Табель2.День2 <> Табель2.День2... Или Табель1.День16 <> Табель3.День16, ...
Я так и сделаю, может, только текст запроса буду циклом составлять, чтобы читалось получше.
Но у меня вопрос, можно ли как-то "красивей" решить?. Мне не нравиться что придется использовать очень много "ИЛИ" в запросе, "ИЛИ" работает медленно.
Конкретно в моем случае на оптимальность заказчику все равно, но, если попадется такая же задача где заказчику будет важна быстрота...
Есть у кого какие идеи?
|
|
3
viktor_vv
05.03.19
✎
19:14
|
Вывод данных в отчет как выглядеть будет ? Конечный результат какой ?
Сверни два табеля за первую половину и за вторую в одну таблицу по сотруднику и сравнивай с полным табелем.
Точнее даже все табеля сверни только с разными знаками , например общий с плюсом половинчатые с минусом и выводи где не ноль.
|
|