Ah, Alzaimar hat mein Beispiel konkretisiert. Und ich habe mal in der richtigen Datenbank nachgeguckt, wie das geht :
Delphi-Quellcode:
CREATE PROCEDURE ERRECHNEPREIS (
ID_ART INTEGER,
PGNR SMALLINT,
ABDATUM DATE)
RETURNS (
PREIS DECIMAL(15,2))
AS
BEGIN
SELECT FIRST 1 PREIS FROM ARTPG WHERE
(PGNR=:PGNR) AND (ABDATUM <= :ABDATUM)
ORDER BY ABDATUM DESC INTO :PREIS;
IF (PREIS IS NULL) THEN PREIS = 0;
SUSPEND;
END^
PG steht für Artikel-Preisgruppe (extra Tabelle). Ist der Preis direkt dem Artikel zugeordnet, dann gehts noch kürzer. Der bisher gezeigte Code ist
IMHO zu kompliziert / unleserlich für den Zweck.