Я должен рассчитать все счета, которые были оплачены в первые 'N' дней месяца. У меня есть две таблицы
. СЧЕТ: в нем есть информация о счете. Единственное поле, которое имеет значение, называется datePayment
. ПРАЗДНИКИ: Это таблица с одним столбцом. Записи в этой таблице имеют форму "2009-01-01",
2009-05-01 "и так далее.
Я должен рассмотреть также субботы и воскресенья
(это может не быть проблемой, потому что я мог бы вставить эти дни в таблицу Hollidays, чтобы рассматривать их как праздники, если это необходимо)
Задача состоит в том, чтобы рассчитать, какой будет «предел оплаты».
select count(*) from invoice
where datePayment < PAYMENTLIMIT
Мой вопрос заключается в том, как рассчитать эту ОПЛАТУ. Где PAYMENTLIMIT - «пятый рабочий день каждого месяца».
Запрос должен выполняться под Mysql и Oracle, поэтому следует использовать стандартный SQL.
Есть подсказка?
EDIT
Чтобы соответствовать названию вопроса, псевдопрос должен выглядеть следующим образом:
select count(*) from invoice
where datePayment < FIRST_WORKING_DAY + N
тогда вопрос можно уменьшить, чтобы рассчитать FIRST_WORKING_DAY каждого месяца.