Seite 1 von 1

[gelöst] Abfrageproblem

Verfasst: Do 29. Sep 2022, 15:12
von Rentner Heinz
Hallo Forum,
unsere Verbrauchsmedien (Gas, Wasser, Strom) sind in einer Tabelle 'Verbraucher' gelistet. Über die ID der Verbraucher werden Ende des Monats die abgelesenen Werte in eine Tabelle 'Verbrauchsdaten' eingetragen.
Und dann gibt es noch die dritte Tabelle 'Preise' (Grundgebühr und Verbrauchspreis), wo die sich periodisch ändernden Preise eingetragen werden, auch hier über die ID der Verbraucher.

So weit so gut.

Nun scheitere ich an der Ermittlung der monatlichen Differenzen (Salden) per Abfrage aus der Tabelle 'Verbrauchsdaten' um dann die monatlichen Kosten zu ermitteln.
Sicher kann mir da jemand helfen.

Gruß
Rentner Heinz

Re: Abfrageproblem

Verfasst: Do 29. Sep 2022, 20:55
von RobertG
Da musst Du schon etwas konkreter werden. Mach' doch einmal ein Tabellenbeispiel der Tabelle "Verbrauchsdaten" und der Tabelle "Preise". Hast Du lediglich das Problem, dass Du nicht weißt, welche Preise für welchen Zeitraum genommen werden? Dann brauchst Du in der Tabelle "Preise" auf jeden Fall ein Startdatum und ein Enddatum für den Preis.

Gruß

Robert

Re: Abfrageproblem

Verfasst: Do 29. Sep 2022, 22:04
von Rentner Heinz
Hallo Robert,
was Du ansprichst ist schon der zweite Schritt in meinem Problem.
Aber, in der Tabelle 'Verbrauch' werden Monat für Monat fortlaufend Ablesedaten eingegeben.
Mein aktuelles Problem ist einfach, dass ich aus der fortlaufenden Tabelle einfach die Differenz zwischen den einzelnen Monaten ermitteln möchte.

Die Fragmente der ersten Tabellen mit Daten sind beigefügt.
Energiedaten (2).zip
(14.74 KiB) 128-mal heruntergeladen

Re: Abfrageproblem

Verfasst: Fr 30. Sep 2022, 08:38
von RobertG
Hallo Heinz,

probiere einmal diese Abfrage:

Code: Alles auswählen

SELECT "b"."ID-Art", "b"."Datum", "b"."Zählerstand", 
(SELECT "Zählerstand" FROM "02-Ablesedaten" WHERE "Datum" = "b"."DatumVorher" AND "ID-Art" = "b"."ID-Art") AS "ZählerstandVorher", 
"b"."Zählerstand" - (SELECT "Zählerstand" FROM "02-Ablesedaten" WHERE "Datum" = "b"."DatumVorher" AND "ID-Art" = "b"."ID-Art") AS "Differenz" 
FROM
(SELECT "a"."Zählerstand", "a"."Datum", "a"."ID-Art", 
(SELECT MAX("Datum") FROM "02-Ablesedaten" WHERE "Datum" < "a"."Datum" AND "ID-Art" = "a"."ID-Art") AS "DatumVorher" 
FROM "02-Ablesedaten" AS "a") 
AS "b"
Gruß

Robert

Re: Abfrageproblem

Verfasst: Fr 30. Sep 2022, 17:56
von Rentner Heinz
Hallo Robert,
erst schon mal Dank für die Antwort.

Habe die vorgeschlagene Abfrage mit Alias 'Monatsverbrauch' gestartet. Leider wird kein Ergebnis gezeigt.
Datei / Abfrage ist beigefügt.

Gruß
Heinz

Re: Abfrageproblem

Verfasst: Fr 30. Sep 2022, 19:55
von RobertG
Hallo Heinz.

hier die DB mit Abfrage. Ich schaue mir auch noch Deine 2. Fassung an, hatte das andere aber bereits gespeichert.
Funktioniert auch in deiner Beispieldatenbank einwandfrei. Da die Abfrage nicht in dem Beispiel enthalten war frage ich mich, wo Du denn da eine Abfrage eingegeben hast, die kein Ergebnis liefert.

Gruß

Robert

Re: Abfrageproblem

Verfasst: Fr 30. Sep 2022, 22:36
von Rentner Heinz
Hallo Robert,

ich hatte Deinen Vorschlag in eine Abfrage kopiert und kein Ergebnisch bekommen, aber auch keine Fehlermeldung.
Ist egal, bei der Datei, die Du nun geschickt hast, funktioniert es.

Also vielen Dank noch einmal.

Gruß
Heinz