SQL Abfrage für Grafana

Begonnen von oelkanne, 12 Dezember 2023, 22:53:09

Vorheriges Thema - Nächstes Thema

oelkanne

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?

DasQ

Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

ergerd

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
FHEM auf RasPi 4, CUNO, ZigBee, 1Wire2WLAN, DS2423, C-Control II, Buderus KM200, LaCrosseGateway, PCA301, ConBee II, LuftdatenInfo, OneWireGW, Div. ESPs u. Shellys

oelkanne

Jawoll ja, - UNION ist die Lösung! Danke ergerd