Hallo,
ich bin nicht sehr versiert mit Datennbanken und habe ein Problem, bei dem ich Hilfe benötige.
Ich logge (u.a.) meinen Stromzähler (Zählerstand und Einspeisung insNetz) in eineMariaDB für Tagesansichtenmit Grafana.
Dies läuft gut.
Nun habe ich eine neue Tabelle 'Monat' für den monatlichen Verbrauch angelegt:
Spalte Typ
DateTime datetime
Zaehlerstand decimal(11,5)
VerbrauchMonat decimal(10,5)
Einspeisung decimal(11,5)
EinspeisungMonat decimal(10,5)
Aus der Tabelle der täglichen Logs habe ich nun die entsprechenden Werte (DateTime, Zählerstand, Einspeisung) des
ERSTEN Eintrages jedes Monats in die Tabelle 'Monat' übernommen.
So weit so gut.
Ich möchte nun die Differenz des Zählerstandes von je zwei aufeinanderfolgenden Monaten in die Spalte 'VerbrauchMonat' schreiben.
Leider ohne Erfolg.
Ein SELECT auf die Tabelle funktioniert, zeigt mir ein Ergebnis an, allerdings mit einer zweiten Spalte 'VerbrauchMonat' als letzte Spalte.
SELECT *,
Zaehlerstand - Lag(Zaehlerstand, 1) OVER(
ORDER BY DateTime ASC) AS VerbrauchMonat
FROM Monat;
Der Versuch des UPDATE mit:
UPDATE Monat SET VerbrauchMonat = Zaehlerstand - Lag(Zaehlerstand, 1)
liefert allerdings : Fehler in der SQL-Abfrage (1064): Syntax error near '' at line 1
und
UPDATE Monat SET VerbrauchMonat = Zaehlerstand - Lag(Zaehlerstand, 1) WHERE ....
liefert: Fehler in der SQL-Abfrage (1064): Syntax error near 'WHERE Einspeisung=0.0000' at line 1
Wer kann den knoten in meinem Hirn lösen?
Herzlichen Dank im Vorraus.
Klaus
ich bin nicht sehr versiert mit Datennbanken und habe ein Problem, bei dem ich Hilfe benötige.
Ich logge (u.a.) meinen Stromzähler (Zählerstand und Einspeisung insNetz) in eineMariaDB für Tagesansichtenmit Grafana.
Dies läuft gut.
Nun habe ich eine neue Tabelle 'Monat' für den monatlichen Verbrauch angelegt:
Spalte Typ
DateTime datetime
Zaehlerstand decimal(11,5)
VerbrauchMonat decimal(10,5)
Einspeisung decimal(11,5)
EinspeisungMonat decimal(10,5)
Aus der Tabelle der täglichen Logs habe ich nun die entsprechenden Werte (DateTime, Zählerstand, Einspeisung) des
ERSTEN Eintrages jedes Monats in die Tabelle 'Monat' übernommen.
So weit so gut.
Ich möchte nun die Differenz des Zählerstandes von je zwei aufeinanderfolgenden Monaten in die Spalte 'VerbrauchMonat' schreiben.
Leider ohne Erfolg.
Ein SELECT auf die Tabelle funktioniert, zeigt mir ein Ergebnis an, allerdings mit einer zweiten Spalte 'VerbrauchMonat' als letzte Spalte.
SELECT *,
Zaehlerstand - Lag(Zaehlerstand, 1) OVER(
ORDER BY DateTime ASC) AS VerbrauchMonat
FROM Monat;
Der Versuch des UPDATE mit:
UPDATE Monat SET VerbrauchMonat = Zaehlerstand - Lag(Zaehlerstand, 1)
liefert allerdings : Fehler in der SQL-Abfrage (1064): Syntax error near '' at line 1
und
UPDATE Monat SET VerbrauchMonat = Zaehlerstand - Lag(Zaehlerstand, 1) WHERE ....
liefert: Fehler in der SQL-Abfrage (1064): Syntax error near 'WHERE Einspeisung=0.0000' at line 1
Wer kann den knoten in meinem Hirn lösen?
Herzlichen Dank im Vorraus.
Klaus