Forums Neueste Beiträge
 
Tags Keywords

Abfrage

29/11/2008 - 11:19 von Wolfgang Flieger | Report spam
Hallo zusammen,
kann mir jemand hier helfen.
Ich habe drei Tabellen:
1) Klienten, mit Vorname, Nachname und Id (Primàrschlüssel)
2) Artikeln, mit id (Autonumber), IdKlienten, Artikel(Text) und Preis
3) Bezahlt, mit mit id (Autonumber), IdKlienten, IdArtikel, Datum_bezahlt
und Betrag.

Jeder Kunde zahlt in Raten, also mehrmals für das gleiche Artikel.

Die GesamtVerpflichtung jedes Kunden bekomme ich mit dieser Abfrage:

SELECT Klienten.Vorname, Klienten.Nachname, sum(artikeln.Preis) AS
GesamtVerpflichtung, sum(bezahlt.Betrag) AS SchonBezahlt
FROM Klienten INNER JOIN (artikeln INNER JOIN bezahlt ON
artikeln.Id=bezahlt.ID) ON (Klienten.id=bezahlt.IdKlient) AND
(Klienten.id=artikeln.IdKlient)
GROUP BY Klienten.Vorname, Klienten.Nachname;

Die liefert gutes Ergebnis.

Die Gesamte schon bezahlte Summe bekomme ich so:

SELECT Klienten.Vorname, Klienten.Nachname, sum(bezahlt.Betrag) AS
SchonBezahlt
FROM Klienten INNER JOIN bezahlt ON Klienten.id=bezahlt.IdKlient
GROUP BY Klienten.Vorname, Klienten.Nachname;

Ich möchte jetzt die Restverpflichtung ermitteln, also die Differenz
zwischen GesamtVerpflichtung und SchonBezahlt.
Wie kann man das machen?
Vielen Dank für eure Hilfe!
Wolfgang
 

Lesen sie die antworten

#1 Karl Donaubauer
29/11/2008 - 11:32 | Warnen spam
Wolfgang Flieger wrote:
Ich habe drei Tabellen:
1) Klienten, mit Vorname, Nachname und Id (Primàrschlüssel)
2) Artikeln, mit id (Autonumber), IdKlienten, Artikel(Text) und Preis
3) Bezahlt, mit mit id (Autonumber), IdKlienten, IdArtikel, Datum_bezahlt
und Betrag.

Jeder Kunde zahlt in Raten, also mehrmals für das gleiche Artikel.

Die GesamtVerpflichtung jedes Kunden bekomme ich mit dieser Abfrage:

SELECT Klienten.Vorname, Klienten.Nachname, sum(artikeln.Preis) AS
GesamtVerpflichtung, sum(bezahlt.Betrag) AS SchonBezahlt
FROM Klienten INNER JOIN (artikeln INNER JOIN bezahlt ON
artikeln.Id=bezahlt.ID) ON (Klienten.id=bezahlt.IdKlient) AND
(Klienten.id=artikeln.IdKlient)
GROUP BY Klienten.Vorname, Klienten.Nachname;

Die liefert gutes Ergebnis.

Die Gesamte schon bezahlte Summe bekomme ich so:

SELECT Klienten.Vorname, Klienten.Nachname, sum(bezahlt.Betrag) AS
SchonBezahlt
FROM Klienten INNER JOIN bezahlt ON Klienten.id=bezahlt.IdKlient
GROUP BY Klienten.Vorname, Klienten.Nachname;

Ich möchte jetzt die Restverpflichtung ermitteln, also die Differenz
zwischen GesamtVerpflichtung und SchonBezahlt.
Wie kann man das machen?



Bekommst du die bezahlte Summe nicht auch schon mit deiner
ersten Abfrage? Oder was gibt dir dort das Feld SchonBezahlt?

Wenn dem so ist, dann kannst du eine Abfrage auf Basis der
ersten erstellen und darin in einem Feld einfach rechnen:
GesamtVerpflichtung - SchonBezahlt

Wenn du aus irgendeinem Grund die zweite Abfrage dafür brauchst,
dann nimm die Klienten-Id mit in das SELECT deiner Abfragen.
Damit kannst du die beiden bestehenden Abfragen in einer dritten
verknüpfen und dort dann die o.a. Berechnung durchführen.

HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com

Ähnliche fragen