So wählen Sie jeden Montag Datum und jeden Freitag Datum im Jahr
grundsätzlich möchte ich wählen können Montag und Freitag für jede Woche im Jahr.
So zum Beispiel diese Woche kommen, ich will 9/29/2014 und 10/3/2014, aber will ich das für jede Woche im Jahr.
- WÄHLEN Sie AUS einer TABELLE? Show table DDL und was du bisher ausprobiert habe..
- keine Tabelle, das ist rein ein system auswählen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist eine Möglichkeit (Sie müssen möglicherweise überprüfen, welche Tage der Woche eingerichtet ist, die ersten zu sein, hier habe ich den Sonntag als ersten Tag der Woche)
Können Sie eine Tabelle mit vielen Zeilen (mehr als 365) zu
CROSS JOIN
zu, um ein ausführen der Termine (eine strichliste, Tabelle).Mein sys Spalten hat über 800 Zeilen, könnten Sie eine beliebige andere Tabelle oder sogar
CROSS JOIN
einer Tabelle auf sich selbst zu multiplizieren, bis die Anzahl der ZeilenHier habe ich die
row_number
- Funktion, um eine laufende Zählung der Zeilen und erhöht das Datum um 1 Tag für jede Zeile:Mit dem ResultSet-Termine jetzt, ist es eine triviale Angelegenheit zu prüfen, den Tag der Woche mit
datepart()
Edit:
Hier ist ein Beispiel SqlFiddle
http://sqlfiddle.com/#!6/d41d8/21757
Edit 2:
Wenn Sie wollen, dass Sie auf der gleichen Zeile, Tagen der Woche mindestens konstant sind, wissen Sie, Freitags ist immer 4 Tage nach Montag so tun das gleiche, aber schau erst für Montag, dann nur 4 Tage, um die Montag...
Beispiel SqlFiddle für diese:
http://sqlfiddle.com/#!6/d41d8/21764
(beachten Sie, dass nur ein paar Zeilen wieder kommen, weil der sys.Spalten ist Recht klein auf der SqlFiddle server, versuchen Sie ein anderes system-Tabelle ist dies ein problem)
UNION
zwei resultsets... ich poste ein BeispielKönnen Sie eine geeignete Tabelle mit den zahlen, wie der master..spt_values Tabelle als Grundlage für die range-generation:
Beispiel-Ausgabe: