Excel: Import aus SQL Server - Befehl: aktuelles Datum

frankymoe

Lt. Commander
Registriert
Okt. 2009
Beiträge
1.137
Hallo alle miteinander,

ich habe folgendes Problem:

Ich möchte in EXCEL mittels SQL Abfrage jeweils ein Monat importieren. Da das Ganze dynamisch sein soll importiere ich das aktuelle Monat. In einer anderen Datei das aktuelle Monat -1 usw. Dazu verwende ich folgenden SQL Befehl (akutell -10 Monate):
select * from Datenbank where month(datum)=MONTH(Current_TimeStamp)-10 and year(datum)=YEAR(Current_TimeStamp)
Das Ganze funktioniert auch solange sich das Monat im aktuellen Jahr befindet. Wenn das Monat aber im Vorjahr ist, dann kommt leider nichts heraus.

Nochmals zur Verdeutlichung:

Ich habe bislang 10 Excel Dateien:

Oktober 2015: Aktuelles Monat: select * from Datenbank where month(datum)=MONTH(Current_TimeStamp) and year(datum)=YEAR(Current_TimeStamp)
September 2015: Aktuelles Monat -1: select * from Datenbank where month(datum)=MONTH(Current_TimeStamp)-1 and year(datum)=YEAR(Current_TimeStamp)
August 2015: Aktuelles Monat -2: select * from Datenbank where month(datum)=MONTH(Current_TimeStamp)-2 and year(datum)=YEAR(Current_TimeStamp)
.
.
.
Dezember 2014: Aktuelles Monat -10: select * from Datenbank where month(datum)=MONTH(Current_TimeStamp)-10 and year(datum)=YEAR(Current_TimeStamp)
Aber hier funktioniert der Befehl nicht mehr. Vermutlich müßte man year(datum)=YEAR(Current_TimeStamp) dynamisch formulieren, aber dazu fehlt mir das Know-How!

Kann mir von euch jemand helfen wie ich den Befehl richtig eingeben muss.

Thanx! Gruß Franky
 
Hi,

SQL versteht nicht das Monat Dezember -1 = Januar ist des Vorjahres es ist und das Jahr um eins verringert werden muss. Das musst du ihn schon sagen bzw. das Jahr um eins verringern.

Entweder ein Hilfsblatt in Excel anlegen indem du das das Aktuelle Jahr und Monat abfragst und die von dir gewollte Werte berechnest. Danach die Berechneten Werte (Zellen) als Parameter für deine Abfrage benutzen.

MfG

Treckschaf
 
Gibt es keinen SQL Befehl der das dynamisch durchführen kann? Würde nur ungern mit einer Hilftstabelle arbeiten.
 
Jein, vielleicht kannst du dir was passendes basteln:

SELECT
CASE
WHEN MONTH(Current_TimeStamp)=1 THEN mache-was-mit-year-minus-1-und-month-12-und-so
ELSE mache-was-mit-month-minus-1
END
FROM woher-auch-immer
[...];
 
Zurück
Oben