Hallo und Guten Tag!
Zuerst einmal ich bin neu im Forum. Ich habe mich bis jetzt mit Access "gespielt" und habe mir in den Kopf gesetzt meine Anwendung in SQL Server zu migrieren.
Mein Thema Probleme mit Where ist vielleicht nicht ganz treffend.
Ich versuche es aber trotzdem.
Ich erstelle derzeit ein Formular Rechnungen suchen.Die Procedur:
ALTER Proc [dbo].[spSuchenRechnung]
@Kunde varchar(50) = 0,
@Strasse Varchar(50) = 0,
@PLZ varchar(10) = 0,
@Ort varchar(50) = 0,
@DatumVon date = Null,
@DatumBis date = Null,
@RgBetragVon Money = 0,
@RgBetragBis Money = 0,
@RGvon int = 0,
@RgBis int = 0
AS
SELECT *
FROM
dbo.tblRechnung LEFT JOIN dbo.tblKundenAdressen ON dbo.tblRechnung.Kundennummer = dbo.tblKundenAdressen.Adressnummer
WHERE
(CONCAT (Adresszeile_2, Adresszeile_1) LIKE @Kunde +'%') and -- or @Kunde + '%' is null) AND
Strasse LIKE @Strasse +'%' and -- Or @Strasse is null AND
PLZ LIKE @PLZ +'%' and --or @PLZ +'%' is null and
Ort LIKE @Ort +'%' and ---or @ort +'%' is null and
Rechnungsdatum Between @Datumvon and @Datumbis And
Rechnungspreis Between @RgBetragVon and @RgBetragBis and
Rechnungsnummer Between @rgvon And @rgbis
ORDER BY dbo.tblRechnung.Rechnungsnummer, CONCAT (Adresszeile_2, Adresszeile_1);
Zu meiner Frage:
Ist es möglich in einer Where Bedingung eine Case function einzubauen?
Wenn ich der Rechnungsnummer 0 (Null) übergebe dann sollen alle DS angezeibgt werden
ansonsten die angegebene Nr
Etwa so:
Case @rgvon
WHEN = 0 Then Rechnungsnummer > 0
When <> 0 Then Rechnungsnummer =@rgvon
Ich müsste bei der RgNr nicht 2 Werte übergeben.
Ich hoffe das ich mein Problem verständlich dargestellt habe.
mfg
Peter und schöne grüße aus Wien