Ich muss alle Rechnungen berechnen, die in den ersten 'N' Tagen eines Monats bezahlt wurden. Ich habe zwei TabellenBerechnung in SQL der erste Arbeitstag eines bestimmten Monats
. Rechnung: Es hat die Rechnungsinformationen. Das einzige Feld, auf das es ankommt, ist 'datePayment'
. Heiligtage: Es ist eine einspaltige Tabelle. Einträge in dieser Tabelle sind von der Form „2009-01-01“, 2009-05-01" und so weiter.
Ich soll auch samstags und sonntags betrachte (dies kann kein Problem sein, weil ich einfügen könnte diese Tage an dem hollidays Tisch, um sie als hollidays zu prüfen, ob neccesary)
das Problem zu berechnen, ist die die ‚Zahlungsgrenze‘ ist.
select count(*) from invoice
where datePayment < PAYMENTLIMIT
Meine Frage ist, wie diese PAYMENTLIMIT zu berechnen. Wo PAYMENTLIMIT ist "der fünfte Arbeitstag eines jeden Monats".
Die Abfrage sollte unter Mysql und Oracle ausgeführt werden, daher sollte Standard-SQL verwendet werden.
Irgendwelche Hinweise?
EDIT Um den Titel der Frage der pseudo-Abfrage sollte das lesen, konsequent zu sein, wie folgt:
select count(*) from invoice
where datePayment < FIRST_WORKING_DAY + N
dann kann die Frage reduziert werden, um die FIRST_WORKING_DAY eines jeden Monats zu berechnen.
die korrekte Schreibweise zu erhalten von Ihrem 2. Tisch ist "Urlaub" –
In der Tat heißt die Tabelle 'Feiertag'. :-) Wie auch immer, danke für den Kommentar. wird es korrigieren. – Luixv
Ich habe Probleme zu verstehen, was deine Frage ist. Möchten Sie wissen, wie Sie den ersten Arbeitstag für jeden Monat finden oder wie hoch das Zahlungslimit ist? Ist die Zahlung am ersten Arbeitstag + 5 Arbeitstage länger? –