[krümelkackermodus]
Zitat von
onlinekater:
Ich möchte aber dazu noch anmerken, daß die Methode von dataspider und mir weniger Reads benötigt (auch wenn diese indiziert sind).
nach dem ich mir deine Bemerkung bezüglich GROUP BY <--> DISTINCT zu Herzen genommen habe,
jetz nochmal:
SQL-Code:
CREATE PROCEDURE ERMITTLE_ALLEMWSTSP (
ABDATUM DATE)
RETURNS (
ID_OUT INTEGER,
MWSTSATZ_OUT INTEGER,
ABDATUM_OUT DATE,
MWSTWERT_OUT DECIMAL(15,2))
AS
BEGIN
if (ABDATUM is NULL) then ABDATUM = CURRENT_DATE;
for
select
S.MWSTSATZ
from
mwst S
GROUP BY MWSTSATZ
into
:MWSTSATZ_OUT
DO BEGIN
for
select first 1
M.ID,
M.ABDATUM,
M.MWSTWERT
from
mwst M
where
M.MWSTSATZ = :MWSTSATZ_OUT and
M.ABDATUM <= :ABDATUM
order by
M.ABDATUM desc
INTO
:ID_OUT,
:ABDATUM_OUT,
:MWSTWERT_OUT
DO
SUSPEND;
END
END
Ergebnis:
deine Variante 11 Reads
meine Variante 8 Reads
[/krümelkackermodus]
alex