URL: https://www.overclockers.at/coding-stuff/sql-ms-access-ergebnis-zweier-abfragen-dividieren_250607/page_1 - zur Vollversion wechseln!
Kann ich das Ergebnis zweier Abfragen (1 und 2) dividieren? Ich bekomme bei beiden 3 Spalten (A, B, C). Ich möchte C dividieren, wo A und B die selben Werte sind. Die Kombination A/B kommt in beiden Abfragen jeweils nur einmal vor.
A ist eine Jahreszahl
B ist ein Namen
C ist eine Zahl (Menge)
ICh hätte gerne als Ergebnis: A, B, C2/C1
tia
Suchst du vll. nach DLookup()? Damit solltest du zumindest zu den jeweils passenden Werten zum Dividieren kommen aus den zwei Abfragen/Tabellen.
Die Werte zu bekommen ist nicht das Problem. Sind zwei etwas längere SQL Abfragen. Ich weiß nur nicht, wie ich das Ergebnis dieser 2 Abfragen dividiere. Das Ergebnis schaut etwa so aus:
Code:Abfrage 1: A B C 2001 Anton 2 2001 Berta 5 2002 Anton 3 2002 Berta 4 Abfrage 2: A B C 2001 Anton 6 2001 Berta 9 2002 Anton 12 2002 Berta 16
Sollte mit Sub-Selects möglich sein.
Allerdings gibt es eine meist performantere Alternative, wenn die Anzahl der Reihen und deren Datenmenge daduch nicht dramatisch höher ist: Die Division nach der Abfrage im Code durchführen, falls möglich. SQL ist nicht zwangsweise die schnellste Methode, um Datensätze aufzubereiten.
Code: SQLSELECT Query1.A , Query1.B , Query2.C/Query1.C FROM (/*Abfrage1*/) AS Query1 INNER JOIN (/*Abfrage2*/) AS Query2 ON Query1.A = Query2.A AND Query1.B = Query2.B
Was spricht dagegen die Division nicht in SQL aber im Code selbst auszuführen, wie mat schon angesprochen hat? Imho wird der Code dadurch auch wartbarer.
Es spricht nichts dagegen und ich habe es auch so gelöst. Performance ist auch komplett egal. Es hat mich in erster Linie interessiert, ob und wie es möglich ist.
Die Lösung von freezer90 sieht interessant aus.
Danke an alle.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025