Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: aloma50 am August 24, 2017, 15:35:46

Titel: Berechnung aus Differenz zum Vorgängerdatensatz
Beitrag von: aloma50 am August 24, 2017, 15:35:46
Hallo zusammen!

Ich habe folgende Tabellen:
Zähler:    Mit Zähler Nr. und Beschreibenden Feldern
Anschluss: Mit Anschluss ID und beschreibenden Feldern
Ablesung:   Mit Ablesezeitpunkt (Datum und Uhrzeit) Zähler Nr., Anschluss ID und Zählerstand
Die Daten werden aus einer Datei importiert.

In einer eigenen Abfrage wird der Ablesezeitpunkt in lesbare bzw. berechenbare Formate aufgelöst und die Zählerstände mit einem Faktor aus der Zählerbeschreibung multipliziert.
Die Ablesungen erfolgen in der Regel jeden Monat um den Monatswechsel (also nicht unbedingt am 1. bzw. letzten Tag des Monats), sie können bei Bedarf auch sporadisch erfolgen.
Nun möchte ich für jeden Anschluss den Verbrauch bzw. die Schüttung, welche sich jeweils aus der Differenz der Zählerstände ergeben, berechnen (,,letzte Ablesung" minus ,,vorletzte Ablesung"). Neben dem Verbrauch ist auch noch die vergangene Zeit von Relevanz, welche sich auch aus den Ablesezeitpunkten errechnen lässt.
Der Knackpunkt ist, wie komme ich an die Datensätze um die Berechnung zu machen?
Ich verwalte und berechne derzeit die Daten in Excel, möchte aber in Zukunft Access dafür verwenden.

Schöne Grüße Alois
Titel: Re: Berechnung aus Differenz zum Vorgängerdatensatz
Beitrag von: ebs17 am August 24, 2017, 19:39:53
Etwa so:
SELECT
   Z.Anschluss,
   Z.Zeitpunkt,
   Z.Zaehlerwert,
   (
      SELECT TOP 1
         U.Zaehlerwert
      FROM
         tblZaehlerstaende AS U
      WHERE
         U.Anschluss = Z.Anschluss
            AND
         U.Zeitpunkt < Z.Zeitpunkt
      ORDER BY
         U.Zeitpunkt DESC
   ) AS Vorwert
FROM
   tblZaehlerstaende AS Z
Titel: Re: Berechnung aus Differenz zum Vorgängerdatensatz
Beitrag von: aloma50 am September 05, 2017, 08:32:53
Sorry, hatte einen Unfall und bin im Moment außer Gefecht. Kann ab nächste Woche wieder aktiv werden.
LG Alois