Я довольно новичок в VB / SQL, я только начал свое обучение несколько месяцев назад, но я могу понять логику алгоритмов, как я делал некоторые Excel VBA.
На самом деле я создаю базу данных, в которой я могу (желаю) отслеживать деятельность каждого коллеги в течение года.
Цель состоит в том, чтобы (месячный) коэффициент =>
Платные дни / (оплачиваемые + не оплачиваемые - отсутствуют)
Контекст:
Один человек может быть: работающим внутри (не оплачиваемым), ИЛИ работающим извне (оплачиваемым), ИЛИ в праздничные дни (отсутствующим).
- У меня есть таблица [Planning], в которой хранятся следующие данные: [Consultant_ID] (связанный с другой таблицей [Consultant], [Activity] (список с тремя вариантами, описанными выше), [Beginning_Date], [End_Date] .
Пример:
Консультант 1: Работа внешне с 01.01.2009 по 01.06.2009,
Работая внутренне с 02/06/2019 по 31/12/2019,
Праздники с 03/03/2019 по 15/03/2019
Можно ли, например, рассчитать коэффициент оплаты за март?
Я создал 4 запроса (может быть, слишком много?)
3 запроса: [Consultant_ID] [Activity] [Beginning_Date] [End_Date] [Ratio: Datediff ("d"; [Beginning_Date]; [End_Date]).
Для каждого запроса: [Критерии активности]: один работает внутри, один работает снаружи, один отсутствует.
И для критериев [Beginning_Date] и [End_Date]: <= [Введите дату начала],> = [Введите дату окончания]
И 4-й запрос [Идентификатор консультанта] [Оплачиваемый] [Неоплачиваемый] [Отсутствует] (и планируется добавить [СООТНОШЕНИЕ]).
Проблема в том, что Datediff считает даты всей активности того, что он находит, а не только даты между 01/03/2019 и 31/03/2019, как я хочу.
Я ожидаю, что выходное отношение будет: оплачиваемые дни / (оплачиваемые + не оплачиваемые - отсутствуют) требуемого периода.
Фактический результат показывает оплачиваемые, неоплачиваемые и отсутствующие дни всего периода между введенными датами
Таким образом, вместо 31 оплачиваемого, 0 не оплачиваемого, 15 отсутствующего
Показывает 180 оплачиваемых, 0 не оплачиваемых, 32 отсутствующих
Извините за длинный пост, на самом деле он мой первый, и большое спасибо!
Я боролся с этим целую неделю