Ich muss ein Skript schreiben, das eine Funktion namens fnItemTotal
erstellt und aufruft, die den Gesamtbetrag eines Artikels in der Tabelle OrderItems
berechnet (Rabattpreis multipliziert mit der Menge).So rufen Sie eine Funktion in einer anderen Funktion auf
Um dies zu tun, sollte diese Funktion einen Parameter für die Artikel-ID akzeptieren, es sollte die DiscountPrice-Funktion verwenden, die ich zuvor erstellt habe, und es sollte den Wert der Summe für diesen Artikel zurückgeben.
Dies ist meine Funktion, die ich erstellt habe und es wird erstellt. Aber wenn ich versuche, es anzurufen, gibt es einen Fehler.
CREATE FUNCTION fnItemTotal
(@ItemID INT)
RETURNS MONEY
BEGIN
RETURN
(
SELECT
ItemId,
(SELECT * FROM dbo.fnDiscountPrice(ItemID) WHERE [email protected])*Quantity)--The fnDiscountPrice is the Other function i created.
FROM
OrderItems
WHERE
[email protected]
);
END
GO
Dies ist, was ich verwende es zu nennen:
Select ItemID,dbo.fnItemTotal(ItemID) AS 'Total Price'
from OrderItems
ORDER BY ItemID;
Dies ist der Fehler, den es gibt mir, wenn ich es nennen:
Msg 208, Ebene 16, Status 3, Zeile 2 Ungültiger Objektname 'dbo.fnDiscountPrice'.
Sind Sie absolut sicher, dass Sie die 'fnDiscountPrice' Funktion im' dbo' Schema erstellt? Sind Sie absolut sicher, dass die Funktion in der Datenbank existiert, in der Sie die Funktion ausführen? –
Ja ich hatte immer noch das Skript von wo ich es erstellt habe. @ TT. –