Mit First 1 erhält man nur genau den ersten Datensatz einer
Ergebnismenge.
Das ist notwendig, da es mehrere Sätze mit dem gleichen MWSt-Kz geben kann.
Von denen ist aber nur der mit dem jüngsten Datum das kleiner gleich
dem Verkaufsdatum ist der Richtige.
Man beachte die Sortierung!
SQL-Code:
SELECT FIRST 1
MWSTSATZ
FROM
MWST
WHERE
(KZ=:KZ) AND (ABDATUM <= :VK_DATUM)
ORDER BY
ABDATUM DESC
So bekommt man auch Summen.
SQL-Code:
select
EXTRACT(YEAR from V.vk_datum) as YY,
EXTRACT(Month from V.vk_datum) as MM,
M.MWSTSATZ,
sum(V.VK_NETTO*(1+M.MWSTSATZ)) as Brutto
from
VERKAUF V
left JOIN SP_GET_MWST(V.MWST_KZ, V.VK_DATUM) M on (1=1)
group by 1,2,3
alles klar?
alex