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
Ankündigung
Einklappen
Keine Ankündigung bisher.
Jeweils akteullen Gerätedatensatz ausgeben
Einklappen
Neue Werbung 2019
Einklappen
X
-
Jeweils akteullen Gerätedatensatz ausgeben
-
Code:SELECT * FROM (SELECT * FROM `tbl` ORDER BY `SID` ASC, `geraete_satz_versionsnr` DESC) AS `tmpTbl` GROUP BY CONCAT(`SID`, '-', `geraete_nummer`)
-
@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:
-
Das müssten hier die within-group aggregates sein:
- http://www.artfulsoftware.com/infotree/queries.php#101
Einen Kommentar schreiben:
-
aktuellen Datensätze eines Benutzers für alle Geräte des Benutzers
Einen Kommentar schreiben:
-
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:
Einen Kommentar schreiben: