Differenz aus zwei Records

24/07/2008 - 16:44 von Gerald Werner | Report spam
Hallo,

ich habe ein Form mit "Stammdaten" mit zwei Registern. Auf dem ersten
Register kann ich blàttern. Auf dem zweiten Register ist ein Unterformular,
welches zu "Bewegungsdaten" zeigt. D.h. ich lasse im UF ein Datenblatt mit
für den Stammdatensatz geltenden laufenden Zàhlerstandswerten und Datum
anzeigen.
Nun möchte ich im UF zusàtzlich ein Feld, in welchem ich je Datensatz die
Differenz zum vorherigen Datensatz berechnen und anzeigen lasse.
Beispiel:
Datum Zàhler Differenz
01.01.08 4711 0
02.01.08 4713 2
03.01.08 5714 1001

Wie kann ich so etwas programmieren?

Gruß Gerald Werner
 

Lesen sie die antworten

#1 Wolfgang Badura
24/07/2008 - 19:31 | Warnen spam
Hallo Gerald!



"Gerald Werner" wrote in message



Nun möchte ich im UF zusàtzlich ein Feld, in welchem ich je Datensatz die
Differenz zum vorherigen Datensatz berechnen und anzeigen lasse.
Beispiel:
Datum Zàhler Differenz
01.01.08 4711 0
02.01.08 4713 2
03.01.08 5714 1001

Wie kann ich so etwas programmieren?





Ich gehe davon aus, daß als "voriger" Datensatz jener gilt, der das kleinere
Datum enthàlt.

Versuchsweise habe ich eine Tabelle und drei Queries angelegt.

Die Betriebsstunden_Diff enthàlt die Differenz zum "vorigen" Datensatz.



Tabelle Betriebsstunden:

Feld Datum / "Datum/Uhrzeit" /Format "Datum, kurz"

Feld Zaehler/ "Zahl"/Format "Double"/ 2 Dezimalstellen



Die Tabellenzeilen werden in den ersten beiden Abfragen nach dem Datum
sortiert, in der letzten nach der lfd. Nummer.



Alles ohne Code.



1.. Betriebsstunden_1:
SELECT (Select Count (*) FROM [Betriebsstunden] as Temp WHERE [Temp].[Datum]
< [Betriebsstunden].[Datum])+1 AS lfdNr, Betriebsstunden.Datum,
Betriebsstunden.Zaehler

FROM Betriebsstunden

ORDER BY Betriebsstunden.Datum;

2.. Betriebsstunden_2:
SELECT (Select Count (*) FROM [Betriebsstunden] as Temp WHERE [Temp].[Datum]
< [Betriebsstunden].[Datum])+2 AS lfdNr, Betriebsstunden.Datum,
Betriebsstunden.Zaehler

FROM Betriebsstunden

ORDER BY Betriebsstunden.Datum;

3.. Betriebsstunden_Diff:
SELECT Betriebsstunden_1.lfdNr, Betriebsstunden_1.Datum,
Betriebsstunden_1.Zaehler AS Lfd_Zaehler, Betriebsstunden_2.Zaehler AS
letzter_Zaehler, Betriebsstunden_1.Zaehler-Betriebsstunden_2.Zaehler AS Diff

FROM Betriebsstunden_1 LEFT JOIN Betriebsstunden_2 ON
Betriebsstunden_1.lfdNr = Betriebsstunden_2.lfdNr

ORDER BY Betriebsstunden_1.lfdNr;



Getestet.



Gruß aus Wien, Wolfgang

Ähnliche fragen