Daten aus mehreren Datensätze in einen Datensatz schreiben
Nick Oetjen
Gesendet: 11.04.22 10:06
Betreff: RE: Daten aus mehreren Datensätze in einen Datensatz schreiben


Member

Beiträge: 22

bullenhai1968 - 08.04.22 23:37

immer 3 Datensätze mit der gleichen Startnummer und gleichem Starter, Zeit 3x unterschiedlich



Die Startnummer, und evt. dazugehörig die ID, sind in allen drei Datensätzen gleich? Und die Zeiten unterschiedlich? Lässt sich rein über Abfragen lösen. Dann kannst Du schematisch

1. eine Tabelllenerstellungsabfrage mit ID , Startnummer, MIN(Zeit) AS Zeit1, NULL AS Zeit2, NULL AS Zeit 3 ausführen, dann

2. UPDATE-Abfrage Tabelle2 SET Zeit2 = MAX(Zeit) , mit JOIN auf ID , Startnummer und Gruppierung auf ID , Startnummer , dann

3. UPDATE-Abfrage Tabelle2 SET Zeit3 = Zeit, mit einem Hilfskonstrukt, um die verbleibende Zeit herauszufinden, dafür die Idee: Per Abfrage filterst Du den kleinsten und größten Zeit-Wert je Startnummer aus der Tabelle1 raus. Also: Tabelle1 LEFT OUTER JOIN auf Tabelle 2 auf ID , Startnummer, sowie Tabelle1.Zeit = Tabelle2.Zeit1 . Hier darf Tabelle2 dann kein Gegenstück besitzen (Filter: Ist NULL), damit es der Datensatz aus Tabelle1 "in die nächste Runde schafft". Auf diese Abfrage aufbauend genauso ein Filter auf die Max-Zeit, nur eben Tabelle1.Zeit = Tabelle2.Zeit2 , Datensätze ohne Gegenstück verbleiben. Es verbleibt folglich die "mittlere" Zeitmessung. Die kannst Du bei Zeit3 per Update-Abfrage einfügen.


Schritt 3 funktioniert so nur, wenn die drei Zeiten paarweise unterschiedlich sind. Ansonsten brauchst Du einen AutoWert, und filterst mithilfe des Autowertes einen der beiden kleinsten bzw. beiden größten Werte heraus. Dreimal derselbe Wert ginge analog, oder Du machst einen Zwischenschritt mit Startnummern, bei denen Mittelwert(Zeit) = Max(Zeit) ist. Das ist einfacher.





Top of the page Bottom of the page