Moin,
ich bin jetzt dazu übergegangen eine Stored Procedure für die Berechnung der Gesamtkosten eines Auftrags zu verwenden. Folgendermaßen sieht sie aus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| CREATE PROCEDURE auftragskosten(anr integer) RETURNS (auftragssumme integer) AS DECLARE VARIABLE summe integer; DECLARE VARIABLE preis integer; DECLARE VARIABLE menge integer; DECLARE VARIABLE anrtemp integer; BEGIN summe=0; FOR SELECT art.e_preis, pos.menge, pos.anr FROM positionen pos LEFT OUTER JOIN artikel art ON pos.artikel=art.artnr WHERE (pos.anr=:anr) INTO :preis, :menge, :anrtemp DO summe=summe+(preis*menge); END; :auftragssumme=:summe; END; |
Sie funktioniert, außer dass ich einen Fehler bekomm, wenn ich das oben ausführe (Listenindex ausserhalb gültigen Bereichs, oder so), aber sie ist richtig da.
Wenn ich sie jetzt aber ausführe, bekomme ich ein leeres Ergebnis zurück. Warum? Hab auch schon auftragssumme und summe ohne : gehabt, ist auch nix anderes. Wer kann mir den erlösenden Tipp geben?
Gruß