[T-SQL] Funktionsfehler

TommyMo

Erfahrenes Mitglied
Hallo zusammen!

Für ein Projekt benötige ich eine Funktion die mir den Discountprice eines Artikels berechnet. Ich habe mich entschlossen das Ganze in einer Funktion zu implementieren, bekomme aber einen Syntaxfehler, kann aber nicht erkennen wo genau er ist, vielleicht hat jemand ein T-SQL Trainiertes Funktionsauge:

Code:
CREATE FUNCTION [dbo].[discountprice](
    @quantity INT, 
    @unitprice DECIMAL(6,2)
) RETURNS DECIMAL(6,2)
AS
BEGIN
    DECLARE @return DECIMAL(6,2)
    SET @return  = @unitprice

    SELECT 
	IF (@quantity < 20 AND @quantity > 9) BEGIN
	@return = @unitprice-(10/@unitprice)*100
	END

    RETURN(@return)
END

Der erhaltene Fehler wird folgendermaßen beschrieben:

Code:
[..] Incorrect Syntax near 'END'.

Danke für eure Hilfe!

Gruß,
Tom
 
Ich habe einen anderen Weg gefunden, jedoch wäre es interessant wieso der Fehler aufgetaucht ist. Wenn jemand eine Antwort darauf hat, dann bitte posten, wäre wirklich stark daran interessiert!

Hier die Lösung die ich jetzt habe:

Code:
CREATE FUNCTION [dbo].[mydiscount] ( 
	@quantity INTEGER, 
	@unitprice DECIMAL(6,2)
)
RETURNS DECIMAL(6,2)
    BEGIN  
	IF (@quantity > 19)
		RETURN (@unitprice - ((20/@unitprice) * 100))
        ELSE
	IF (@quantity < 20 AND @quantity > 9)
		RETURN (@unitprice - ((10/@unitprice) * 100))
	ELSE
		RETURN @unitprice
    END

Hier gehe ich nicht den Weg über zusätzliche Variablen, vielleicht ist das der Fehler gewesen. Allerdings fehlt mir jetzt die Zeit das zu testen.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück