Struggling mit einigen SQL, würde einige Anleitung zu schätzen wissen.Wählen Sie den entsprechenden Wert aus der zweiten Tabelle (Mysql)
Haben zwei Tabellen Protokolle und spüren
logs -
assetid ts nodeid status
1 2017-10-26 14:00:10 73 240
2 2017-10-26 14:00:06 21 160
3 2017-10-26 14:00:04 18 230
4 2017-10-26 14:00:02 19 400
5 2017-10-26 14:00:00 21 190
1 2017-10-26 13:20:08 18 20
2 2017-10-26 13:06:10 20 160
3 2017-10-26 13:03:04 17 230
Sinn -
status value
20 5
160 37
190 39
230 56
240 58
400 90
Der Versuch, die richtige Syntax zu finden, um nur die letzte Aufzeichnung zeigen (in Datumzeit) jeder Assetid und zeigen dann den entsprechenden Wert aus der Sense-Tabelle (basierend auf dem Übereinstimmungsstatus in beiden Tabellen) zu produzieren -
assetid ts nodeid status value
1 2017-10-26 14:00:10 73 240 58
2 2017-10-26 14:00:06 21 160 37
3 2017-10-26 14:00:04 18 230 56
4 2017-10-26 14:00:02 19 400 90
5 2017-10-26 14:00:00 21 190 39
Haben Sie versucht -
Select assetid, ts, nodeid, status, value
From
logs
Join sense X on X.status = logs.status
Group by assetid
Order by ts DESC
Aber dies nur Ausgänge 1 Zeile (statt 5)
assetid ts nodeid status value
1 2017-10-26 14:00:10 73 240 58
Entfernen
Join sense X on X.status = logs.status
natürlich gibt alle Datensätze, aber das ist nicht benötigt.
Gedanken geschätzt.
Grüße
Aktive
Wenn eine der Antworten unten Ihr Problem gelöst hat, dann markieren Sie es als Antwort und können es uupvote. Wenn nicht, dann nenne bitte das verbleibende Problem unter den nützlichen Antworten. –