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

  • 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
    Mit freundlichem Grinsen

    Norbert


  • #2
    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 

    Kommentar


    • #3
      aktuellen Datensätze eines Benutzers für alle Geräte des Benutzers
      Ich sehe nirgends einen Bezug zu einem Benutzer...
      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

      Kommentar


      • #4
        Das müssten hier die within-group aggregates sein:

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

        Kommentar


        • #5
          @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).
          Mit freundlichem Grinsen

          Norbert

          Kommentar


          • #6
            @lstegelitz
            Die SID ist der Bezug zum Benutzer.
            Mit freundlichem Grinsen

            Norbert

            Kommentar


            • #7
              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.
              VokeIT GmbH & Co. KG - VokeIT-oss @ github

              Kommentar

              Lädt...
              X