1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Hilfe bei SELECT

Dieses Thema im Forum "SQLite" wurde erstellt von /dev/null, 20 Oktober 2016.

  1. /dev/null

    /dev/null Neuer Benutzer

    Hallo erstmal

    Vereinfacht sehen die Tabellen wie folgt aus.

    Machine (aktueller Stand Km/Stunden der Maschinen)
    Index Id Name Km Stunden
    1 1 Machine A 100 0
    2 2 Machine B 90 0
    3 3 Machine C 0 50
    4 4 Machine D 0 20

    Service (Zeitpunkt des Service, zusätzlich noch "Vorlaufzeit")
    Index MaschinenIndex Text ServiceKm WarnKm ServiceStunden WarnStunden
    1 1 Ölwechsel 101 10 0 0
    2 1 Keilriemen 200 20 0 0
    3 3 Ölwechsel 0 0 55 10
    4 3 Lager 0 0 50 0
    5 3 Filter 0 0 75 5
    6 2 Filter 100 0 0 0
    7 4 Filter 0 0 25 5

    Kriterien für das sortierte Ergebnis.
    Immer alle Services einer Maschinen im Block.
    Zuerst Maschinen deren Servicezeitpunkt überschritten ist. (zB Km >= ServiceKm)
    Danach Maschinen in der Vorlaufzeit (zB ServiceKm - WarnKm <= Km < ServiceKm)
    Anschließend der Rest (zB Km < ServiceKm)

    MaschineA Ölwechsel
    MaschineA Keilriemen
    MaschineC Lager
    MaschineC Ölwechsel
    MaschineC Filter
    MaschineD Filter
    MaschineB Filter

    danke

    PS: formatierte Tabellen/Ergebnis im Anhang
     

    Anhänge:

    • text.txt
      Dateigröße:
      851 Bytes
      Aufrufe:
      2
  2. akretschmer

    akretschmer Datenbank-Guru

    Was hast denn bisher versucht?

    Forderung 1 lasse ich erst mal weg. Dann ist der Rest trivial durch Angabe dieser Bedingungen im ORDER BY.

    Forderung 1: nicht ganz so trivial. Kann SQLite Window-Funktionen? Dann könnte man via PARTITION BY <der Machine> und ORDER BY <deine Sortierkriterien> die ROW_NUMBER berechnen und nach dieser sortieren.
     
  3. /dev/null

    /dev/null Neuer Benutzer

    Bisheriger Ansatz:
    Eine Abfrage für die Maschinen in Forderung 1 gewünschter Reihenfolge und jeweils eine Abfrage für die Services der Maschinen. Für mein Befinden zu umständlich, das muss doch einfacher/effizienter gehn.

    sqlite kann kein PARTITION BY
     

Diese Seite empfehlen