Datumswerte aufzählen



  • Hallo Forum,

    wie kann man mit SQL aufzählen? ZB möchte ich die Zahlen von 1 bis 60 in 3er Schritten aufzählen: 1, 3, 6, ... 60.

    Ich benutze MS SQL Server 2008, auf den Nachfolgern soll das Stmnt natürlich auch laufen. Eine Stored Prozedure möchte ich vermeiden. Wenn alle Stricke reissen, dann schreibe ich Code der mir ein Stmnt jedes Mal generiert.

    Vielen Dank

    Peter



  • Was verstehst du unter "aufzählen"?
    Willst du die Werte mit PRINT ausgeben, oder willst du ein Result-Set wo pro "aufgezählter" Zahl eine Zeile drinnen ist?



  • Falls du ein Result-Set brauchst:
    http://sqlperformance.com/2013/01/t-sql-queries/generate-a-set-1

    Und falls du einfach nur irgendwas ausführen willst (PRINT oder auch irgendwelche Stored-Procedures aufrufen), dann einfach ne Schleife machen. Die Syntax dafür sollte sich leicht ergoogeln lassen.



  • Es geht darum zu einem Vertrag der intervallweise abgerechnet wird alle Intervall Ende Datumsangaben aufzuzählen.

    -- Beispiel Vertrag: 2 Jahre Laufzeit, quartalsweise Abrechnung.
    WITH MonthsAdd (Numbers) AS (
    SELECT TOP (2*(12/3)) n = 3*ROW_NUMBER() OVER (ORDER BY number)
    FROM [master]..spt_values ORDER BY n
    )

    -- Vertrag beginnt am 2016.Jan.13. Zähle alle Abrechnungszeitpunkte des Vertrages auf:
    SELECT DATEADD(m, Numbers, '20160113') AS AbrechnungsZeitpunkte FROM MonthsAdd;

    Ergebnis:

    AbrechnungsZeitpunkte
    2016-04-13 00:00:00.000
    2016-07-13 00:00:00.000
    2016-10-13 00:00:00.000
    2017-01-13 00:00:00.000
    2017-04-13 00:00:00.000
    2017-07-13 00:00:00.000
    2017-10-13 00:00:00.000
    2018-01-13 00:00:00.000

    Funktioniert. Vielen Dank 🙂


Log in to reply