Ich würde den Einsatz einer SP in Betracht ziehen, z.B. so :
SQL-Code:
ALTER PROCEDURE NETTOSP (
BETRAG DECIMAL(15,2),
MWSTSATZ SMALLINT,
DATUM DATE)
RETURNS (
GESNETTO DECIMAL(15,2))
AS
DECLARE VARIABLE MWSTPROZ DECIMAL(15,2);
BEGIN
SELECT FIRST 1 MWSTWERT FROM MWST WHERE
(MWSTSATZ=:MWSTSATZ) AND (ABDATUM <= :DATUM)
ORDER BY ABDATUM DESC INTO :MWSTPROZ;
IF (MWSTPROZ IS NULL) THEN MWSTPROZ = 0;
/* GESNETTO = CAST (BETRAG / (1 + MWSTPROZ / 100) AS DECIMAL (15,2)); */
GESNETTO = BETRAG / (1 + MWSTPROZ / 100);
SUSPEND;
END
Da gehts zwar um die Ermittlung der Mwst., aber das dürfte egal sein. Es ist halt datumsgesteuert. Ob Mickysoft-
SQL allerdings so was hat wie SELECT FIRST ?
In Firebird gibts das auch erst seit vorletzter Version.