none
Hilfe bei Sortierung einer SQL Abfrage benötigt RRS feed

  • Frage

  • Hallo,

    ich benötige Hilfe bei der Sortierung einer SQL Abfrage. Und zwar geht es darum eine Geburtstagsliste aller Mitarbeiter für das ganze Jahr zu erstellen.

    Folgendes sortiert nach dem Alter:

    "Select Name, Geburtsdatum From Personaldaten ORDER BY Geburtsdatum"

    Wenn ich dann Versuche Monat und Tag abzugreifen bekomme ich nicht das gewünschte Ergebnis:

    "Select Name, Geburtsdatum From Personaldaten ORDER BY month(Geburtsdatum) and day(Geburtsdatum)"

    Kann mir bitte jemand einen Tipp geben?

    Vielen Dank

    Markus

    Dienstag, 7. Oktober 2014 11:32

Antworten

  • Hallo Markus,

    die ORDER BY Klausel ist falsch, die einzelnen Felder müssen per Komma getrennt werden und nicht mit einem "AND".

    Select Name, Geburtsdatum From Personaldaten ORDER BY month(Geburtsdatum), day(Geburtsdatum)

    Welches Ergebnis willst Du den konkret erzielen?


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort vorgeschlagen Jens Gerber Dienstag, 7. Oktober 2014 12:04
    • Als Antwort markiert Markus1984 Dienstag, 7. Oktober 2014 12:07
    Dienstag, 7. Oktober 2014 11:36

Alle Antworten

  • Hallo Markus,

    die ORDER BY Klausel ist falsch, die einzelnen Felder müssen per Komma getrennt werden und nicht mit einem "AND".

    Select Name, Geburtsdatum From Personaldaten ORDER BY month(Geburtsdatum), day(Geburtsdatum)

    Welches Ergebnis willst Du den konkret erzielen?


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort vorgeschlagen Jens Gerber Dienstag, 7. Oktober 2014 12:04
    • Als Antwort markiert Markus1984 Dienstag, 7. Oktober 2014 12:07
    Dienstag, 7. Oktober 2014 11:36
  • Hallo Markus,

    so wird als erstes nach Monat sortiert egal welches Jahr.... du musst als erstes nach YEAR(Geburtsdatum) sortieren.

    Gruß


    Jens Gerber

    Dienstag, 7. Oktober 2014 11:39
  • Vielen Dank für eure schnellen Antworten. Gewünschtes Ergebnis ist eine Liste in der nur Monat und Tag berücksichtigt wird, so dass man mit einem Blick sieht wer wann im Jahr Geburtstag hat.

    Beispiel:

    01.01. Müller

    01.05. Meier

    10.05. Schulze

    03.11. Becker

    Dienstag, 7. Oktober 2014 11:49
  • Vielen Dank Olaf!
    Dienstag, 7. Oktober 2014 12:08
  • Wenn Du es als Daten selektiert haben willst, bringt es nichts, die Daten ins ORDER BY zu stecken, die gehören ins SELECT. Wenn Du den SQL Server verwendest, kannst Du per CONVERT das Datum in Text mit DE Format umwandeln und davon nur die ersten 6 Zeichen verwenden =>

    Select Name, CONVERT(varchar(6), Geburtsdatum, 104) From Personaldaten ORDER BY month(Geburtsdatum), day(Geburtsdatum)


    Olaf Helper

    [ Blog] [ Xing] [ MVP]


    Dienstag, 7. Oktober 2014 12:09