Hi,
hast Du nicht vor ein paar Tagen schon mal eine Frage bzgl. SP in Interbase gestellt?? Da wurde Dir doch ausdrücklich gesagt (falls nicht, dann sei Dir verziehen
), dass
*Select-SP immer mit Select ausgeführt werden
*Executable-SP immer mit Execute
*zu einer Select-SP immer ein For-Select-Do gehört
Also muss deine SP so aussehen, damit es auch mit der Nachbarin klappt
:
SQL-Code:
set term !! ;
CREATE PROCEDURE ErmittleDurchschnitt
RETURNS (
DP DECIMAL (8,2))
AS
begin
/* Procedure Text */
FOR
select avg (PREIS)
FROM WERBEARTIKEL
into :
DP
DO
SUSPEND;
end !!
Nun zu deiner Select:
Eine Procedure ist KEINE Function! Du rufst Die SP aber wie eine Funktion auf!!!! Versuch es mal so:
SQL-Code:
select DP AS "
Durchschnitt", Beschreibung, Lagerbestand, Preis
from Werbeartikel, ErmittleDurchschnitt
So sollte es eigentlich klappen. Du musst aber aufpassen, sollte die SP mehr als einen Wert zurückliefern, würde diese Select zu einem kartesischen Produkt führen (d.h. alles aus Tabelle 1 (Werbeartikel) wird mit allem aus Tabelle 2 (ErmittleDurchschnitt) zusammengewürfelt. In einem solchen Fall musst Du mit einem Join die Tabellen verknüpfen.
Grüße
Lemmy