Hi,
änder die SP so ab:
SQL-Code:
CREATE PROCEDURE SUM_ZEILE_BER (
STELLE CHAR(9),
JAHR INTEGER,
ZEILE INTEGER,
MONAT INTEGER)
RETURNS (
ERGEBNIS NUMERIC(9,2))
AS
DECLARE VARIABLE DIF1 NUMERIC(9,2) = 1;
begin
FOR
select sum(R_ANZ * R_EPREIS) from RECHNUNG R, MAIN M /*die negativen*/
where (M.stelle = R.Stelle) and (M.id = R.bereich) and (M.calc = 0) and (R.stelle like '%'||:stelle||'%') and (r.bereich < :zeile) and (EXTRACT(YEAR from R.R_Datum) = :Jahr) and (EXTRACT(MONTH from R.R_Datum)= :Monat)
into :dif1;
ergebnis = :dif1
DO
suspend;
end
Wenn Du willst, dass ne SP nen Wert uzrückliefert, brauchst Du meines WIssens immer ne For-DO-Suspend/Exit Schleife, auch wenn nur ein Wert zurückkommen soll.
Grüße
Lemmy