zurückgeben Ich versuche, eine Funktion zu erstellen, die die Summe aller meiner Top-Sales zurückgeben, aber ich bekomme diesen Fehler.Nicht erlaubt, eine Ergebnismenge von einer Funktion
DELIMITER ++
CREATE FUNCTION CostOfBestBuyers(number INT) RETURNS INT
BEGIN
SELECT SUM(Tprice)
FROM (SELECT SUM(T.Quantity * S.ProductPrice) AS Tprice
FROM Transaction T JOIN Stocks S ON T.ProductCode = S.ProductCode
GROUP BY UserCode ORDER BY 1 DESC LIMIT number) AS subquery;
END++
DELIMITER ;
Die SQL-Anweisung allein gibt einen einzelnen Wert, aber wenn ich die Abfrage in der Funktion gesetzt, es kommt wieder mit einem Fehler.
Was ist die Fehlermeldung? –
Schlechte Praxis, um Ihre Aliase die gleichen wie in SQL-Funktionsnamen, übrigens – WillardSolutions
Namen zu nennen, warten, Abfrage selbst funktioniert, aber wenn Sie es in Funktion setzen, funktioniert es nicht mehr? Haben Sie stattdessen versucht, eine Prozedur zu erstellen? – wast