Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Sartorius am April 08, 2016, 16:38:49

Titel: Problem bei Abfrage
Beitrag von: Sartorius am April 08, 2016, 16:38:49
Hallo zusammen,
ich habe ein Problem bei einer Abfrage und denke, dass ich die Grundlagen nicht verstanden habe.
Ich habe drei Tabellen (Kunde, Verkäufe, Auszahlungen): diese sind über die KNR in 1:n Beziehung miteinander verbunden (1 Kunde mehrere Verkäufe, mehrere Auszahlungen).
Wenn ich jetzt in einer Abfrage die Verkäufe und die Auszahlungen summieren will, bekomme ich bei den Verkäufen die korrekte Summe, die Auszahlungen werden aber mit den Verkäufen multipliziert.
Ziel der Abfrage war es, die Summe der Auszahlungen mit der Summe der Verkäufe zu verrechnen. Das erstellte Kreuzprodukt ist aber fehl am Platze.
Für Eure Antworten schon mal besten Dank!   :D
Titel: Re: Problem bei Abfrage
Beitrag von: Beaker s.a. am April 08, 2016, 17:45:21
Hallo Sartorius,
SELECT
    A.A_KundenID,
    Sum(V.Verkauf) AS SummeVerkauf,
    Sum(A.Auszahlung) AS SummeAuszahlung,
    SummeVerkauf-SummeAuszahlung AS Ergebnis
FROM Auszahlung AS A
  INNER JOIN Verkauf AS V
  ON A.A_KundenID = V.V_KundenID
GROUP BY A.A_KundenID

Falls Du weitere Daten des Kunden benötigst, machst Du eine Abfrage
mit der Kundentabelle und dieser Abfrage gejoint über die KundenID.
hth
gruss ekkehard
Titel: Re: Problem bei Abfrage
Beitrag von: Sartorius am April 08, 2016, 18:37:01
Hallo ekkehard,

besten Dank für Deine schnelle Antwort.  :D
Gut, ich habe mich jetzt mit INNER JOIN vertaut gemacht und den SQL-Code angepasst.

Die Abfrage läuft auch, liefert aber immer noch das Kreuzprodukt.... :-\
Titel: Re: Problem bei Abfrage
Beitrag von: Beaker s.a. am April 09, 2016, 17:58:47
Hallo Sartorius,
Jau, stimmt;- mein Fehler.
So geht's jetzt aber:
SELECT
    A.KundenID_F,
    V.SummeUmsatz-A.SummeAuszahlung AS Ergebnis
FROM
    (SELECT KundenID_F, Sum(Auszahlung) AS SummeAuszahlung
     FROM Auszahlung
     GROUP BY KundenID_F) AS A
INNER JOIN
    (SELECT V.KundenID_F, Sum(V.Umsatz) AS SummeUmsatz
     FROM Verkauf AS V
     GROUP BY V.KundenID_F) AS V
ON A.KundenID_F = V.KundenID_F

gruss ekkehard
Titel: Re: Problem bei Abfrage
Beitrag von: Sartorius am April 10, 2016, 16:07:47
Yup, so geht das!  :D

Besten Dank für Deine Hilfe, ekkehard!