Tage des Jahres als SQL-Befehl

30/04/2008 - 12:39 von Christien Müller | Report spam
Hallo,

ich habe eine Tabelle mit einem Datummsfeld und einem Integer-Feld,

Die Eintràge des Integerfeldes möchte ich groupieren, so das ich die Summe
pro Tag bekommen - soweit so gut!

Ich möchte aber auch die Tage sehen, für die keine Eintràge in der Tabelle
sind.

Dazu müsste ich die Tage es Jahres irgendwie generieren und mit der
Groupier-Abfrage ind Beziehung setzen.

Aber wie bekomme ich alle Tage des Jahres als SQL-Befehl?
 

Lesen sie die antworten

#1 Christoph Ingenhaag
30/04/2008 - 13:57 | Warnen spam
"Christien Müller" wrote:

Hallo,

ich habe eine Tabelle mit einem Datummsfeld und einem Integer-Feld,

Die Eintràge des Integerfeldes möchte ich groupieren, so das ich die Summe
pro Tag bekommen - soweit so gut!

Ich möchte aber auch die Tage sehen, für die keine Eintràge in der Tabelle
sind.

Dazu müsste ich die Tage es Jahres irgendwie generieren und mit der
Groupier-Abfrage ind Beziehung setzen.

Aber wie bekomme ich alle Tage des Jahres als SQL-Befehl?




Hallo Christien

folgende Möglichkeiten, dir eine Tabelle zu erzeugen, die alle Datümer des
Jahres enthàlt:

with doy as
(
select
cast('20080101' as datetime) doy

union all

select
doy + 1
from doy
where
doy < '20081231'
)
select
doy
from doy
beim Aufruf der view oder function setzen
option(maxrecursion 0)

select
cast('20080101' as datetime) + (num - 1) doy
from nums
where
cast('20080101' as datetime) + (num - 1) < '20090101'

Falls du eine Tabelle nums (eine Tabelle die nur fortlaufende Nummern
enthàlt) nicht hast, google mal danach. Es lohnt sich, mit dieser Tabelle
kann man diverste Probleme lösen!

Diese Statements kannst du ja dann als view, function oder derived table
oder temporary table mit deiner Abfrage in Beziehung setzen.

Vg
Christoph

Ähnliche fragen