Ankündigung

Einklappen
Keine Ankündigung bisher.

Jeweils akteullen Gerätedatensatz ausgeben

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Norbert
    hat ein Thema erstellt Jeweils akteullen Gerätedatensatz ausgeben.

    Jeweils akteullen Gerätedatensatz ausgeben

    Guten Tag,
    ich habe eine Tabelle mit Geräten, die durch eine Gerätenummer identifiziert werden. Die Datensätze sind versioniert über einen Datensatzversionsnummer und werden einem Benutzer über eine Mitarbeiter_sid zugeordnet.
    Ich möchte nun nur die aktuellen Datensätze eines Benutzers für alle Geräte des Benutzers aufgelistet bekommen.
    Beispieldaten Daten für Tabelle geraete
    id geraete_nummer geraete_satz_versionsnr SID
    184 184 1 1003
    185 185 1 1003
    186 186 1 1003
    187 187 1 1003
    1647 187 2 1003
    557 557 1 1003
    589 589 1 1003
    733 733 1 1003
    1646 733 2 1003
    1648 733 3 1003
    1040 1040 1 1003
    1041 1041 1 1003
    1042 1042 1 1003
    1043 1043 1 1003
    1109 1109 1 1003
    1267 1267 1 1003
    1551 1551 1 1004
    1555 1551 2 1004
    1556 1551 3 1004
    1557 1557 1 1005
    1559 1557 2 1005
    Bisher habe ich folgenden select, der aber nicht das gewünschte Ergebnis hervorbringt:
    SELECT * , MAX( `geraete_satz_versionsnr` ) AS geraete_satz_versionsnr_aktuell
    FROM geraete
    WHERE `sid` = '1003'
    AND geraete_satz_versionsnr = any(

    SELECT max( t.geraete_satz_versionsnr )
    FROM geraete t
    WHERE t.`sid` = '1003'
    GROUP BY t.`geraete_nummer`
    )
    GROUP BY `geraete_nummer`
    ORDER BY `geraete_nummer`
    LIMIT 0 , 30

    Irgendwie habe ich ein Brett vorm Kopf

  • G.Schuster
    antwortet
    Code:
    SELECT * FROM (SELECT * FROM `tbl` ORDER BY `SID` ASC, `geraete_satz_versionsnr` DESC) AS `tmpTbl` GROUP BY CONCAT(`SID`, '-', `geraete_nummer`)
    Wo du ein WHERE für die Abfrage nur eines Mitarbeiters reinpackst bleibt nun dir überlassen.

    Einen Kommentar schreiben:


  • Norbert
    antwortet
    @lstegelitz
    Die SID ist der Bezug zum Benutzer.

    Einen Kommentar schreiben:


  • Norbert
    antwortet
    @citybreaker
    "SELECT * FROM geraete WHERE sid = 1003 "


    Mit dieser Anweisung bekomme ich alle Datensätze eines Benutzers. Ich benötige aber zu jedem Gerät des Benutzers den aktuellsten Datensatz (höchste geraete_satz_versionsnr für Gerät mit der geraete_nummer).

    Einen Kommentar schreiben:


  • mermshaus
    antwortet
    Das müssten hier die within-group aggregates sein:

    - http://www.artfulsoftware.com/infotree/queries.php#101

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    aktuellen Datensätze eines Benutzers für alle Geräte des Benutzers
    Ich sehe nirgends einen Bezug zu einem Benutzer...

    Einen Kommentar schreiben:


  • citybreaker
    antwortet
    Hallo Norbert,

    ich bin mir nicht sicher, ob ich dein Problem genau verstanden habe. Mit folgender select-Anweisung solltest du alle Geräte von einem Mitarbeiter auslesen können.

    PHP-Code:
    SELECT FROM geraete WHERE sid 1003 

    Einen Kommentar schreiben:

Lädt...
X