SQL Bedingung Wo

8

Ich habe eine gespeicherte Prozedur namens spGetOrders, die einige Parameter akzeptiert: @startdate und @enddate. Dies fragt eine Tabelle "Bestellungen" ab. Eine der Spalten in der Tabelle heißt "ClosedDate". In dieser Spalte wird NULL angezeigt, wenn ein Auftrag nicht geschlossen wurde, oder ein Datumswert, wenn dies der Fall ist. Ich möchte einen @ Closed-Parameter hinzufügen, der einen kleinen Wert annehmen wird. In einer einfachen Welt wäre ich in der Lage zu tun ..

%Vor%

Offensichtlich wird das nicht funktionieren. Ich schaue auch auf dynamische SQL, die meine letzte Zuflucht ist, aber wie die Antwort aussieht ..

Bitte helfen Sie ..

    
madcolor 09.12.2008, 16:42
quelle

4 Antworten

14

Versuchen Sie Folgendes:

%Vor%

Seien Sie vorsichtig beim Mischen von ANDs und ORs in der Where-Klausel. Wenn Sie dies tun, ist die Klammer zur Kontrolle der Reihenfolge der Auswertung sehr wichtig.

    
G Mastros 09.12.2008, 16:48
quelle
2

SQL-Anweisung:

%Vor%     
dkretz 09.12.2008 16:46
quelle
0

Oder das:

%Vor%

Es sieht so aus, als ob Sie alle Bestellungen zwischen zwei Daten, die inkonsistent sind, schließen möchten. Die anderen Vorschläge sind wahrscheinlich so gut (oder besser), aber ich bin mir ziemlich sicher, dass das funktioniert und für mich lesbar ist (die meisten anderen Vorschläge erschienen, als ich tippte).

Viel Glück!

    
wcm 09.12.2008 16:48
quelle
0

Schreib es einfach aus.

%Vor%

doppelt, kann entfernt werden

    
plep 09.12.2008 16:50
quelle

Tags und Links