Juli 26, 2021, 15:01:50

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


Differenz zweier aufeinanderfolgender Tabellenzeilen per SQL

Begonnen von jojo3000, April 06, 2021, 18:04:00

⏪ vorheriges - nächstes ⏩

jojo3000

Servus!

in meiner Tabelle habe ich Zeitstempel für Tätigkeiten je Mitarbeiter:

9:15 | 50
10:05 | 25
10:30 | 77
....
wobei sich die Dauer der Tätigkeiten aus 10:05 minus 9:15 = 50 usw. ergibt.
und genau für die Ermittlung der Dauer einer Tätigkeit brauche ich Inspiration.
Es geht mir nicht um die Funktion DatDiff

Vielen Dank vorab schon mal für Eure Unterstützung!
LG
Peter



ebs17

SELECT
   T.Zeitstempel,
   Nz(
   (
      SELECT
         MAX(X.Zeitstempel)
      FROM
         TabelleX
      WHERE
         X.Zeitstempel < T.Zeitstempel
   )
   , 0) AS Vorzeit
FROM
   TabelleX AS T
Mit freundlichem Glück Auf!

Eberhard

jojo3000

Glück Auf!

Dein Code liefert:
Zeitstempel|Vorzeit
1     |0
3     |1
5     |3
8     |5
13     |8
16     |13
17     |16

ich benötige:
Zeitstempel|Vorzeit
1     |2
3     |2
5     |3
8     |5
13     |3
16     |1
17     |
Tätigkeitsdauer zum Zeitstempel1 = 2 = 3-1
Tätigkeitsdauer zum Zeitstempel8 = 5 = 13-8
 :-[

aber schon mal ein fettes Danke!
LG
Peter

ebs17

ZitatEs geht mir nicht um die Funktion DatDiff
Das hatte ich pauschal als Aussage dazu verstanden, dass Du aus zwei Feldern alleine eine Differenz bilden kannst, wenn sie erst einmal in einer Zeile sind. Habe ich mich da getäuscht?

In meinem Code wird zu einem Datensatz der Vorgänger und dessen Wert ermittelt. Wenn nun stattdessen der Nachfolger gesucht wird, ist das nichts anderes als nur eine Logikumkehr in der Unterabfrage. So etwas sollte man selber hinbekommen, schon um zu unterstreichen, dass man den Ansatz auch versteht.
Mit freundlichem Glück Auf!

Eberhard

jojo3000

Das hatte ich pauschal als Aussage dazu verstanden, dass Du aus zwei Feldern alleine eine Differenz bilden kannst, wenn sie erst einmal in einer Zeile sind. Habe ich mich da getäuscht?
Nein, natürlich nicht

So etwas sollte man selber hinbekommen, schon um zu unterstreichen, dass man den Ansatz auch versteht.
Dann probiere ich das mal

LG
Peter

jojo3000

Hello,

habs hinbekommen,
für den Nachfolgeer wird "max" durch "min" und "<" durch ">" ersetzt.
Sehr geiler Code!
vielen Dank nochmal!

LG Peter