Мне нужно рассчитать все счета-фактуры, которые были оплачены в первые «N» дней месяца. У меня есть две таблицыРасчет в SQL первый рабочий день данного месяца
. INVOICE: содержит информацию о счете. Единственное поле, которое имеет значение, называется «datePayment»
. HOLYDAYS: Это таблица с одним столбцом. Записи в этой таблице, имеют вид «2009-01-01», 2009-05-01" и так далее.
следует рассмотреть также по субботам и воскресеньям (это может быть не проблема, потому что я мог вставить эти дни в Hollidays таблицы для того, чтобы рассматривать их как Hollidays если есть необходимость)
проблема заключается в том, чтобы вычислить, который является "предел оплаты.
select count(*) from invoice
where datePayment < PAYMENTLIMIT
Мой вопрос заключается в том, чтобы вычислить эту PAYMENTLIMIT. Где PAYMENTLIMIT - «пятый рабочий день каждого месяца».
Запрос должен выполняться под Mysql и Oracle, поэтому должен использоваться стандартный SQL.
Подсказка?
EDIT Для того, чтобы соответствовать названию вопроса псевдо-запрос должен считанному следующим образом:
select count(*) from invoice
where datePayment < FIRST_WORKING_DAY + N
тогда вопрос может быть уменьшен, чтобы вычислить FIRST_WORKING_DAY каждого месяца.
Правильное написание вашей второй таблицы «праздник» –
Фактически таблица называется «Feiertag». :-) В любом случае, спасибо за комментарий. исправит его. – Luixv
У меня возникли проблемы с пониманием вашего вопроса. Вы хотите узнать, как найти первый рабочий день за каждый месяц или какой лимит оплаты? Лимит оплаты в первый рабочий день + 5 рабочих дней? –