Neuigkeiten:

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

Mobiles Hauptmenü

Differenzberechnung

Begonnen von jaguen, März 09, 2019, 19:50:25

⏪ vorheriges - nächstes ⏩

jaguen

Ich möchte in einer Abfrage die Differenz zwischen dem ersten Wert und dem jeweiligen Wert in dem Datensatz anzeigen. In Excel liest sich sowas in etwa:   Differenz-Spalte   =E3-E$2$
Im Anhang ist das Beispiel dazu.
Hat jemand eine Idee, wie die entsprechende Formel dafür aussieht?
Die Differenzberechnung für 2 aufeinander folgende Datensätze habe ich soweit hinbekommen. Doch dafür fehlt mir die Idee.
Vielen lieben Dank, an den der sich meines Problems annimmt.



DF6GL

Hallo,

statt des vorherigen DS nimm halt immer den   Datensatz mit Platz=1


Select *, [Platz]-(Select a.Gesamtzeit From tblTabelle1 As a Where a.Platz =1) As Differenz
From tblTabelle1
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

jaguen

Vielen Dank für den Tip.  Der Wert im Feld "Platz" wird aber erst später erzeugt. Bei der Differenzberechnung habe ich leider nur die Gesamtzeit zur Verfügung. Ich stelle mir die Abfrage so ähnlich vor, wie bisher bei der Differenz.

Differenz: Runden(Abs((SELECT max([S2B.Gesamtzeit]) as Wert2 from Sort_F10 AS S2B WHERE [S2B.Gesamtzeit] < [Sort_F10.Gesamtzeit])-([Sort_F10.Gesamtzeit]));2)

jaguen

Danke für den Denkanstoß. manchmal ist die Lösung ganz einfach. Statt "max" habe ich "min" eingetragen - und schon passt es.

Differenz: Runden(Abs((SELECT min([S2B.Gesamtzeit]) as Wert2 from Sort_F10 AS S2B WHERE [S2B.Gesamtzeit] < [Sort_F10.Gesamtzeit])-([Sort_F10.Gesamtzeit]));2)

Vielen, vielen Dank