none
SQL Abfrage - Ergebniss einer Kalenderwoche RRS feed

  • Frage

  • Hallo Zusammen,

    ich habe eine Datenbank wie sie in der Abbildung dargestellt ist.

    Ich möchte diese Informationen gern auf Kalenderwochenbasis auswerten. Dieses möchte ich gern auf Kalenderwochenbasis machen.

    Ich weiß nicht, wie ich die Abfrage gestallten muss damit ich nur die Daten einer beliebigen Kalenderwoche bekomme.

    ID    Zeitstempel    Schichthuebe    Gesamtzeit    Produktionszeit    Stillstandszeit    GesamtzeitString    Anlage    ProduktionszeitString    StillstandszeitString
    3278067    2017-12-13 14:00:00.000    2509    28767000    13324000    15588000    07:59:27    132455    03:42:04    04:19:48
    3278066    2017-12-13 14:00:00.000    3153    28769000    12654000    16178000    07:59:29    132505    03:30:54    04:29:38
    3278065    2017-12-13 14:00:00.000    7077    28770000    14793000    14120000    07:59:30    132507    04:06:33    03:55:20
    3278064    2017-12-13 14:00:00.000    0    28772000    0    28772000    07:59:32    132404    00:00:00    07:59:32

    LG

    Mittwoch, 27. Dezember 2017 13:21

Antworten

Alle Antworten

  • Hallo,

    Mit der DATEPART Funktion und dem Parameter "week" bzw. "iso_week" kannst Du zu einem Datum die Kalenderwoche ermitteln und darauf filtern, z.B. für letzte Woche.

    SELECT *
    FROM Tabelle
    WHERE YEAR(Zeitstempel) = 2017
          AND DATEPART(ISO_WEEK, Zeitstempel) = 51


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Mittwoch, 27. Dezember 2017 13:41
  • Hey Hallo,

    hatte die Funktion Datepart ebenfalls schon mal gesehen aber scheinbar nicht richtig logisch verknüpft. Ich werde es erstmal ausprobieren, vielen Dank für die Hilfe.

    Gr

    Klappt super, genau das.

    Danke!

    Mittwoch, 27. Dezember 2017 13:56
  • Leider ist das nur die halbe Wahrheit:
    Iso-Week liefert nur einen Wert zwischen 1 und 53, das Jahr dazu fehlt aber, da Woche 1 sowohl das aktuelle als auch bereits das Folgejahr und Woche 53 das aktuelle als auch das vorherige Jahr sein kann.

    Gruppiert man also seine Daten auf z.B. Woche 1, vermischt man u.U. die 2. Januarwoche mit der letzten Dezemberwoche. Man kann also nur den Komplettbegriff JJJJKW als Sortierkriterium verwenden:

    case datapart(iso_week, MyDate)
    when 1

    case month(MyDate)
    when 1
    then year(Mydate) * 100 + datapart(iso_week, MyDate)
    else (year(Mydate) +1 ) * 100 + datapart(iso_week, MyDate)
    end

    when 53

    case month(MyDate)
    when 12
    then year(Mydate) * 100 + datapart(iso_week, MyDate)
    else (year(Mydate) - 1 ) * 100 + datapart(iso_week, MyDate)
    end

    else year(Mydate) * 100 + datapart(iso_week, MyDate)
    end

    Mittwoch, 27. Dezember 2017 14:23