SQL (MS Access): Ergebnis zweier Abfragen dividieren
kleinerChemiker 19.01.2018 - 09:21 2579 6
kleinerChemiker
Here to stay
|
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
|
p1perAT
-
|
Suchst du vll. nach DLookup()? Damit solltest du zumindest zu den jeweils passenden Werten zum Dividieren kommen aus den zwei Abfragen/Tabellen.
|
kleinerChemiker
Here to stay
|
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: 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
Nun will ich die Ergebnisse (also Spalte C) aus Abfrage 1 und 2 dividieren.
|
mat
AdministratorLegends never die
|
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.
|
freezer90
Ex SE Student
|
SELECT
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
So irgendwie ... vorrausgesetzt, du hast die selbe Anzahl an Zeilen auf beiden Seiten und du kannst sicher über Jahr und Name einen JOIN machen. Wär besser wenn du irgendwas eindeutiges hättest. Schön isses so nicht ..... Sind die Abfragen so groß, dass du sie nicht von Haus aus gemeinsam machen könntest? Wie mat schon sagte gäbs vermutlich schönere Wege das zu lösen ... aber du hast ja nach SQL gefragt
|
Denne
Here to stay
|
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.
|
kleinerChemiker
Here to stay
|
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.
|