Hallo, ich habe hier ein Problem mit der Erstellung einer Abfrage.
Eigentlich erscheint mir die Bedingung sehr einfach, aber ich bekomme ständig eine Fehlermeldung, die ich mir nicht erklären kann...
Die Tabelle hat im Grunde nur 3 Spalten
No, YYYYMM, Value
2116 201704 500
2116 201705 1000
2116 201706 1000
2116 201707 750
Die Abfrage gibt die No und YYYYMM als Parameter vor und liefert Value zurück. Sollte der übergebene Wert für den Parameter YYYYMM nicht gefunden werden soll der Value Wert geliefert werden, bei dem YYYYMM für No am größten ist.
Ich habe es mit CASE WHEN in der WHERE Bedingung versucht, bekomme aber den Fehler:
Fehlerquelle: .Net SqlClient Data Provider
Fehlermeldung: Parameter 4 ([DBName].[].[unknown]): The CLR Type does not exist or you do not have permissions to access it.
SELECT Value, YYYYMM
FROM tb1
WHERE (No = @No) AND (YYYYMM = CASE WHEN YYYYMM = @YYYYMM THEN YYYYMM ELSE
(SELECT MAX(YYYYMM)
FROM tb1
WHERE No = @No) END)
Kann mir jemand sagen, wo mein Fehler liegt, oder mir auf Grund des hier geschilderten Beispiels sagen, wie die Abfrage auszusehen hat?
Vielen Dank vorab...
Eigentlich erscheint mir die Bedingung sehr einfach, aber ich bekomme ständig eine Fehlermeldung, die ich mir nicht erklären kann...
Die Tabelle hat im Grunde nur 3 Spalten
No, YYYYMM, Value
2116 201704 500
2116 201705 1000
2116 201706 1000
2116 201707 750
Die Abfrage gibt die No und YYYYMM als Parameter vor und liefert Value zurück. Sollte der übergebene Wert für den Parameter YYYYMM nicht gefunden werden soll der Value Wert geliefert werden, bei dem YYYYMM für No am größten ist.
Ich habe es mit CASE WHEN in der WHERE Bedingung versucht, bekomme aber den Fehler:
Fehlerquelle: .Net SqlClient Data Provider
Fehlermeldung: Parameter 4 ([DBName].[].[unknown]): The CLR Type does not exist or you do not have permissions to access it.
SELECT Value, YYYYMM
FROM tb1
WHERE (No = @No) AND (YYYYMM = CASE WHEN YYYYMM = @YYYYMM THEN YYYYMM ELSE
(SELECT MAX(YYYYMM)
FROM tb1
WHERE No = @No) END)
Kann mir jemand sagen, wo mein Fehler liegt, oder mir auf Grund des hier geschilderten Beispiels sagen, wie die Abfrage auszusehen hat?
Vielen Dank vorab...