für Auswertung mehrere Datenbanktabellen bzw, -abfragen kombinieren

mareinki

Aktiver Benutzer
Beiträge
39
Hallo

Vorab: Mir ist klar dass ich Daten zuerst nach dem relationalen DB-Modell in eine Normalform bringen muss/soll und dann die verschiedenen Tabellen mit eindeutigen IDs miteinander in Beziehung setzen kann.

Meine Anforderung:
Ich werte seit Jahren meine Energieverbräuche aus, und zwar wie folgt:
Einmal schreibe ich die Zählerstände des Energielieferanten in eine Tabelle (meist wöchentlich, aber nicht immer am selben Wochentag) und auch interne Zähler (zB Zähler der Heizungs-Wärmepumpe, Werte Photovoltaik-Produktion)
Grundsätzlich kann es vorkommen, dass es in einem Monat keine Daten gibt (hier zb im April, Urlaub).
Die Tabelle sieht so aus
DatumZählerstand TagZählerstand NachtZähler Photovoltaik Zählerstand EinspeisungZählerstand Wärmepumpe
2.3.2025234412126
9.3.2025676618249
17.3.202510299203014
2.5.2025124130304022


Mittels einer Abfrage berechne ich dann die jeweiligen Verbräuche in den Zeiträumen
AuswertedatumVerbrauch TagVerbrauch TagErtrag PVEinspeisungVerbrauch Wärmepumpe
9.3.202544226123
17.3.20253533265
usw

In Bericht (basierend auf einer Abfrage mit Monatssummen bzw. jahressummen) stelle ich dann Monats oder Jahresverbräuche dar.
Das schaut dann so aus (natürlich fehlen in dieser Darstellung die Daten ab 17.3.)
MonatVerbrauch TagVerbrauch TagErtrag PVEinspeisungVerbrauch Wärmepumpe
März 202579558188

Jetzt interessieren mich die restlichen Verbräuche, also ohne Heizung.
Daher berechne ich [restlicher Verbrauch] = [Verbrauch Tag] + [Verbrauch Nacht] + [Ertrag PV] -[Einspeisung] - [Verbrauch Wärmepumpe]

Ich messe aber auch bei weiteren Energieverbrauchern (Warmwasserbereiter, Kühlschrank, Gefriertruhe, Herd). Bei diesen habe ich keinen klassischen Zähler sondern Verbrauchsmesser im Einsatz. Bei diesen lese ich monatlich die Verbräuche ab und trage diese in eine eigene Tabelle ein bzw. importiere sie.
MonatVerbrauch KSVerbrauch GefriertruheVerbrauch Herd
März 2025557
April 2025653

Mittels einer Abfrage die Jahr und Monat der beiden Abfragen erzeugt verknüpfe ich dann diese Daten mittels SQL so:

Code:
FROM Abfrage_Verbräuche INNER JOIN Abfrage_Geräte ON Abfrage_Verbräuche.[Jahr_Monat] = Abfrage_Geräte.[Jahr_Monat]

wobei Jahr_Monat als zu verknüpfendes Feld das Format 202503, 202504, 202505 etc hat.

und berechne den restlichen Verbrauch so

[restlicher Verbrauch] = [Verbrauch Tag] + [Verbrauch Nacht] + [Ertrag PV] - [Einspeisung] - [Verbrauch Wärmepumpe] - [Verbrauch KS] - [Verbrauch Gefriertruhe]

Das funktioniert auch soweit.

Frage 1) Ist diese Methode der Verknüpfung der Abfragen mittels Jahr_Monat so sinnvoll oder gibt es eine bessere Methode?

Zusätzlich habe ich ein Elektroauto, das ich sporadisch lade und die Daten die ich importiere schauen so aus
Hier kann es ebenfalls vorkommen, dass es einen Monat ohne Daten gibt.

DatumLadung (=Verbrauch)
13.1.20255
15.1.20258
1.3.202542
15.3.202510
12.4.202533

Diese Daten verknüpfe ich ebenfalls über [Jahr_Monat] mit den anderen Daten und bekomme damit nun meinen wirklichen restlichen Verbrauch, der dann nur mehr Licht, Standby-Verbrauch, Router, etc. umfasst.

Frage 2) gäbe es eine andere Methode solche Daten die unregelmäßig erfasst werden (nicht in jedem Monat, Elektroauto erst seit 2021, Zählerwerte seit 1999) zu kombinieren?

Grüße
Markus
 
Werbung:
Hallo Markus,

sehr schöne und ausführliche Darstellung deiner "Auswertungsorgie" ;-)
Aber, was erwartest Du nun in einem Accessforum als Antwort, ausser dem, was du schon selbst in den ersten Sätzen ausgeführt hast?

zu 1) Die Art der Gruppierung und Zusammenfassung der Ursprugsdaten ist doch total egal. Mach es so, wie Du es möchtest und deine atomaren Daten es hergeben.

zu 2) Das nennt man wohl Konsolidierung. Fehlende Daten werden durch Durchschnittsdaten der Vergangenheit ergänzt um so die Entwicklung darstellen zu können. Das verwässert natürlich jedes Ergebnis, gibt aber Aufschluss über die Prognose.

Das Ganze ist wohl eher ein Thema für einen Statistikworkshop.

Schönes Wochenende.
 
Spannend finde ich da 2 Punkte
fehlende Daten
= kein Verbrauch oder fehlende Daten = Messfehler oder fehlende Daten = kein passender Messwert zum Zeitpunkt X
Granularität
Die Monatswerte und Messpunkte sind ja recht grob. Der Trend geht zu immer kleineren Intervallen.

Man muss also bei der Verarbeitung mit den Lücken umgehen können, sprich Interpolation oder wirkliche Auslassungen und man muss aggregieren oder interpolieren, um die Granularität verschiedener Messstellen anzugleichen, wenn man eine gemeinsame Darstellung haben will.

Den Zeit"punkt" in Form JahrMonat, JahrMonatTag, .. kann man für die Verknüpfung nach Bedarf ganz gut nutzen und regulieren.
 
Das wird ja noch interessanter, wenn man nicht nur die Verbräuche, sondern auch die Kosten analysiert. Eine KWh ist ja nun mal bei Gas etwas anderes, als bei Strom. Dann gehts weiter mit der Synchronisation der Zeitpunkte von Tarifwechseln. 😏
 
Werbung:
Hi

MIr ging es einfach darum ob meine Vorgangsweise einer Verknüpfung über JahrMonat (mir reicht ein Monat als untere Granularität aus, da ja die Nutzung zB des Elektroautos, des Herdes sehr individuell ist und daher allenfalls Monatstrends interessant sind) eine sinnvolle bzw. bestmögliche aus Datenbanksicht ist, oder ob es da auch einen anderen Ansatz gäbe.

Übrigens bei mir läuft alles über Strom (Heizungs-Wärmepumpe, Warmwasser-Wärmepumpe, Elektroauto und natürlich der restliche Strom).
Insofern ist die Umrechnung in Kosten kein Problem.

Kleiner Schönheitsfehler bei meinen Auswertungen ist, wenn ich an einem Monatsersten (an jedem 1. lese ich normalerweise immer zusätzlich zu den wöchentlichen Ablesungen ab) keinen Wert des Zählers des Netzbetreibers habe. Diese Zählerstände sind leider nicht online abrufbar. Da behelfe ich mir damit dass ich diesen Wert auf Grund der Verbräuche zwischen meine Ablesungen nachträglich interpoliere.

Grüße
Markus
 


Schreibe deine Antwort....
Zurück
Oben