В таблице 1 представлена витрина, хранящая информацию о режимах работы сотрудников Банка.
Таблица 1 – Режимы работы
tab_numstart_datefinish_datewday_type01wday_type02wday_type03wday_type04wday_type05wplace_typeend_da1512302.09.202031.12.999900000031.10.20201623420.09.202030.10.2020001102 1734528.09.202025.10.2020100002 1734526.10.202031.12.2020111111 1845602.09.202031.12.999922222330.09.20201956702.09.202031.12.2020333334
Задание #2
Необходимо преобразовать витрину из таблицы 1 к формату, представленному в таблице 3, по следующим правилам:
диапазон дат новой витрины: 01.09.2020 – 31.12.2020гг.;
по каждому табельному номеру должны быть представлены все даты из диапазона;
если finish_date == '31.12.9999', значит необходимо вместо него использовать значение поля end_da (только если оно не пусто);
значения флага to_be_at_office для каждой пары (табельный номер, дата) могут принимать только три допустимых значения (0, 1, null)
to_be_at_office == 0, когда сотрудник должен работать дома (не в офисе)
to_be_at_office == 1, когда сотрудник должен находиться в офисе (не дома)
to_be_at_office is null в 2-х случаях:
когда для сотрудника в таблице 1 отсутствует режим работы, покрывающий конкретную дату;
когда день недели – это сб или вс (выходной день).
особенности работы с режимами, для которых значения wplace_type принадлежат [3, 4]:
если wplace_type == 3, значит 1-я (даже неполная) неделя в рамках этого режима является полностью дистанционной, а вторая (уже точно полная) – в офисе. Чередование «Неделя через неделю» сохраняется вплоть до finish_date (end_da);
если wplace_type == 4, значит первые 2 недели в рамках этого режима являются полностью дистанционными, а вторая пара недель – офисными. Чередование «две недели через две» сохраняется вплоть до finish_date (end_da).
Таблица 3 – Целевой формат витрины с режимами работы
tab_numymd_dateto_be_at_office1512301.09.2020 1512302.09.202011512303.09.20201………1623421.09.202011623422.09.202011623423.09.202001623424.09.202001623425.09.20201………1734523.10.202011734524.10.2020 1734525.10.2020 1734526.10.202001734527.10.20200………1845602.09.202001845603.09.202001845604.09.202001845605.09.2020 1845606.09.2020 1845607.09.202011845608.09.202011845609.09.202011845610.09.202011845611.09.20201………