Hallo zusammen,
hört sich einfach an, trotzdem kriege ich es nicht hin.
In einer Abfrage habe ich folgende Felder mit Werten:
ID_Whg ID_Geb Größe GesGröße
1 5 45 100
2 5 55 100
3 6 75 75
Das Feld GesGröße soll die Gesamtgröße aller Wohnungen pro Gebäude_ID berechnen.
Wie muss die Unterabfrage dann aussehen?
Oder funktioniert das mit Domsumme?
Gruß
Max
Hallo,
warum machst Du nicht einfach eine gruppierte Abfrage?
ID_Geb gruppieren, Größe summieren.
Zitat von: MaxP am Oktober 23, 2023, 19:00:59Das Feld GesGröße soll die Gesamtgröße aller Wohnungen pro Gebäude_ID berechnen.
Wie muss die Unterabfrage dann aussehen?
Oder funktioniert das mit Domsumme?
Wenn du als Ergebnis ganze Gebäude haben willst, ist der Ansatz eine gruppierte Abfrage zu erstellen, wie von
@MzKlMu vorgeschlagen, die einfachste und sinnvollste Lösung.
Eine Unterabfrage oder DSum (kommt auf dasselbe heraus) ist nur nötig, wenn du einzelne Wohnungen als Ergebnis willst, aber trotzdem die Summe pro Gebäude.
SELECT
ID_Whg,
ID_Geb,
Größe,
(SELECT SUM(Größe)
FROM deineTabelle t2
WHERE t2.ID_Geb = t1.ID_Geb
) AS GesGröße
FROM deineTabelle t1;
Die Lösung mit DSum funktioniert analog. Die könntest du als Übung selbst umsetzen.
Der wesentliche Unterschied ist, dass die Unterabfrage, insbesondere für kleiner Ergebnismengen, etwas schneller sein dürfte und weniger flackert wenn sie auf dem Bildschirm dargestellt wird.
Dafür sind Abfragen mit Unterabfrage in Access generell schreibgeschützt, während eine Abfrage mit einer Domänenaggregatfunktion das nicht ist.
Hallo,
okay, meine Abfrage war deutlich umfangreicher als das Beispiel.
Ich habe meine Abfrage nun entsprechend ausgedünnt und nun funktioniert
das auch mit der Gruppierung.
@PhilS So ähnlich hatte ich das auch mit Dsum versucht. Für das nächste Mal
weiß ich dann Bescheid.
Danke Euch beiden!
Gruß
Max