Hallo Community,
ich habe folgende Frage: Ich möchte eine Prozedur schreiben, welche alle Bestellungen aus einem bestimmten Jahr abfragt. Der Gespeicherten Prozedur soll über einen Parameter das Jahr übergeben werden. Als Standardwert für den Parameter soll das aktuelle Jahr dienen.
Hier mein Versuch:
Leider erzeugt dieser Code folgenden Fehler:
Wo liegt mein Fehler? YEAR(GETDATE()) funktioniert ja an sich. Wieso in der SP nicht?
Viele Grüße
zachy
ich habe folgende Frage: Ich möchte eine Prozedur schreiben, welche alle Bestellungen aus einem bestimmten Jahr abfragt. Der Gespeicherten Prozedur soll über einen Parameter das Jahr übergeben werden. Als Standardwert für den Parameter soll das aktuelle Jahr dienen.
Hier mein Versuch:
Code:
CREATE PROCEDURE usp_Alle_Bestellungen
@jahr int = YEAR(GETDATE())
AS
SELECT
k.knd_Kundenname, b.bst_Datum,
a.art_Preis_VK * bd.bsd_Menge AS Umsatz
FROM tbl_Kunden AS k
INNER JOIN tbl_Bestellungen AS b
ON k.knd_ID = b.bst_Kunde_fi
INNER JOIN tbl_Bestelldetails AS bd
ON b.bst_ID = bd.bsd_bst_ID_fi
INNER JOIN tbl_Artikel AS a
ON bd.bsd_art_ID_fi = a.art_ID
WHERE YEAR(b.bst_Datum) = @jahr;
Leider erzeugt dieser Code folgenden Fehler:
Code:
Meldung 102, Ebene 15, Status 1, Prozedur usp_Alle_Bestellungen, Zeile 2
Falsche Syntax in der Nähe von '('.
Meldung 137, Ebene 15, Status 2, Prozedur usp_Alle_Bestellungen, Zeile 14
Die @jahr-Skalarvariable muss deklariert werden.
Wo liegt mein Fehler? YEAR(GETDATE()) funktioniert ja an sich. Wieso in der SP nicht?
Viele Grüße
zachy