Peter Thomassen: Bestimmung des Mehrwertsteuersatzes

Beitrag lesen

Hallo,

nach wie vor mit einem Rechnungssystem beschäftigt habe ich nun folgendes Problem, using MySQL 5:

Gegeben seien zwei einer Tabelle entnommene Datumsangaben, beispielsweise 2006-04-03 und 2008-02-05. Angenommen, die MwSt wird zum 1.1.2007 von 16% auf 19%, zum 1.1.2008 auf 20% erhöht; dies stehe in einer Tabelle vat mit je einer Spalte für den (neuen) Steuersatz (vat) und das Einführungsdatum (start).

Ich möchte nun am besten mit Hilfe von Stored Procedures aus den beiden Daten und der Steuersatzteballe Folgendes herstellen:

vat  | number
------+--------
 0.16 | 9
 0.19 | 12
 0.20 | 2

Es soll also für einen gegebenen Zeitraum ermittelt werden, welcher Steuersatz für wieviele Monate gilt.

Zwei Ansätze fallen mir dazu ein:
1.)
Monatsweise "SELECT vat FROM vat WHERE start <= [Monat] ORDER BY start DESC LIMIT 1", doch jeden Monat einzeln zu betrachten, erscheint mir etwas umständlich.
2.)
Mittels PERIOD_DIFF() jeden Steuersatz auf den gegebenen Zeitraum anwenden. Hier tritt das Problem auf, dass zunächst mit dem ersten gegebenen Datum und dem einen Einführungsdatum, dann mit beiden Einführungsdaten und dann mit dem anderen Einführungsdatum und dem zweiten gegebenen Datum gerechnet werden muss; mir fällt dazu nichts Elegantes ein. Ich habe aber das Gefühl, es gibt was ... Any ideas?

Zu guter Letzt bleibt die Frage, wie man das in ein Stored Procedure bringt ...

Danke!
Peter