Ich brauche Hilfe bei dieser skalarwertigen Funktion.
Ich möchte den Wert, den ich in MaxValue erhalte, in der Zeile max(Value) AS MaxValue
.
Die Abfrage funktioniert und gibt nur 1 Wert zurück, wenn ItemId
et ListPropertyId
existiert, aber ich bin nicht in der Lage, eine Funktion davon zu erstellen.
CREATE FUNCTION GetLpivMax
(
-- Add the parameters for the function here
@ItemId int,
@ListPropertyId int
)
RETURNS int
AS
BEGIN
DECLARE @output INT;
WITH U AS (
SELECT i.Id AS ItemId,
lpiv.Value,
lp.Id AS ListPropertyId
FROM ListPropertyItemValues lpiv
JOIN ListPropertyItems lpi ON lpi lpi.Id = lpiv.ListPropertyItemId
JOIN ListProperties lp ON lp.Id = lpi.ListPropertyId
JOIN Items i ON i.Id = lpiv.ItemId)
SELECT @output = MAX(u.value)
FROM U u
WHERE u.listpropertyid = @ListPropertyId
AND u.itemid = @ItemId
GROUP BY u.listpropertyid, u.itemid
RETURN @output
END
GO