Guten Abend,
Ich versuche meine FHEM Zählerdaten mit Grafana zu visualisieren.
Ziel ist es die Tagesdaten (LastDay) aus der Tabelle history und den heutigen Wert (Day) aus der Tabelle current von der MySQL Datenbank in EINER SQL Abfrage zu realisieren.
Als separate Abfragen habe ich bereits.
SELECT
TIMESTAMP AS "time",
cast(VALUE as float)
FROM history
WHERE
$__timeFilter(TIMESTAMP) AND DEVICE ='ShellyEM3_1' AND READING = 'statEnergie_Gesamt_ElektrischDayLast'
ORDER BY TIMESTAMP
(liefert die Tageswerte der vergangenen Tage) und
SELECT
TIMESTAMP AS "time",
cast(VALUE as float)
FROM current
WHERE
DEVICE ='ShellyEM3_1' AND READING = 'statEnergie_Gesamt_ElektrischDay'
(Liefert den letzten heutigen Wert)
Die Frage ist, wie kann ich die beiden Abfragen zur einer machen (Subquery?), damit ich das Ergebnis als Reihe in Grafana darstellen kann?
Hat jemand eine Idee?
Sowas macht man normal über einen ,,join"
https://www.w3schools.com/sql/sql_join.asp
Bei einem Join hätte man 4 Spalten im Ergebnis. Ich glaube nicht, dass das gewünscht ist.
Mein Vorschlage wäre UNION:
SELECT
TIMESTAMP AS "time",
cast(VALUE as float)
FROM history
WHERE
$__timeFilter(TIMESTAMP) AND DEVICE ='ShellyEM3_1' AND READING = 'statEnergie_Gesamt_ElektrischDayLast'
UNION
SELECT
TIMESTAMP AS "time",
cast(VALUE as float)
FROM current
WHERE
$__timeFilter(TIMESTAMP) AND DEVICE ='ShellyEM3_1' AND READING = 'statEnergie_Gesamt_ElektrischDay'
ORDER BY TIMESTAMP
Jawoll ja, - UNION ist die Lösung! Danke ergerd