Verwenden von CASE-Anweisungen in der WHERE-Klausel

8

Ich habe mir viele ähnliche Fragen angesehen, die hier und an anderen Orten gestellt wurden, und ich weiß nicht, wie ich das, was sie sagen, auf das, was ich brauche, extrapoliere, also entschied ich mich für mein Szenario.

>

Grundsätzlich muss ich überprüfen, dass das Datum einer Zeile vor einem bestimmten Datum liegt. Das Datum (das ist älter als ich, und ich kann nichts dagegen tun, obwohl ich das System nicht mag) wird einfach als eine einzige Zahl gespeichert, die der Anzahl der Tage in dem Jahr entspricht, in dem es ist. Zum Beispiel ist der 1. Januar der 1. Februar, der 1. Februar der 32. usw. usw. Also wird das Datum durch Hinzufügen dieser Nummer zu 12/31 / ermittelt. Das Problem, auf das ich gestoßen bin, ist, dass, wenn ich einen Zeitraum überprüfe, der sich über Silvester erstreckt, es (zum Beispiel) den 29. Dezember dieses Jahres statt LETZTES Jahr zurückbringt. Ich habe dies in der SELECT und die CASE-Anweisung hat gut funktioniert. In der WHERE-Klausel funktioniert es jedoch nicht wie erwartet. In der Where-Klausel muss ich überprüfen, ob es ein Wochenende ist. (Noch einmal, Code ist älter als ich und ich kann leider nicht viel ändern)

Also, ich habe das jetzt in der WHERE-Klausel:

%Vor%

(zB: Wenn das Datum größer ist als der letzte Tag des Zeitraums, addiere die Zahl vor zwei Jahren und überprüfe, ob es ein Wochenende ist. Ansonsten füge es dem 31.12. des LETZTEN Jahres hinzu und überprüfe, ob es ein Wochenende ist .)

Ich glaube, dass es scheitert, weil mein Fall eher wie folgt aussehen sollte:

%Vor%

aber ich habe keine Ahnung, was ich in dieser Situation als X setzen soll.

    
Reverend Dovie 16.01.2014, 20:59
quelle

2 Antworten

7

Ihre where-Klausel sollte ungefähr so ​​aussehen, wenn Sie eine case-Anweisung darin verwenden möchten:

%Vor%     
Becuzz 16.01.2014 21:27
quelle
5

Danke allen. Ich habe es tatsächlich herausgefunden, kurz bevor ich zurückkam, um mehr Antworten zu finden.

Ich habe das getan:

%Vor%

das scheint zu funktionieren!

    
Reverend Dovie 16.01.2014 21:29
quelle

Tags und Links