Abrechnung/Gebührenrechnung per SQL

Hallo,

ich habe beispielsweise folgende Tabelle

tab vertriebspartner
name
vorname
ort
plz
telfon
vpid

tab gebühren
betrag
datum
grund
vpid

und ich möchte eine ausgabe realisieren, die mir die gesamtheit aller gebühren in einem bestimmten zeitraum von einer bestimmten selektion von vertriebspartnern anzeigt

beispiel: alle vertriebspartner deren ort Berlin ist und die summe der gebühren vom 31.3.2001 bis zum 31.4.2001

und die ausgabe sollte so aussehen

Maria Mustermann 31.1.2001 17 3179DM

wobei die 17 die vpid und die 3179 die summe aller beträge in gebühren sind, die als vpid 17 haben und nach dem 31.3.2001 aber vor dem 31.4.2001 dazu gekommen sind

Das DBMS ist Microsoft Access aber angesprochen wird es direkt über SQL befehle

Vielen dank für jede Hilfe

Gruss
Bytewalker

SELECT \* 
 FROM vertriebspartner, gebühren
 WHERE 
 vertriebspartner.vpid = gebühren.vpid 
 AND
 gebühren.datum = 31.4.2001 
 AND
 vertriebspartner.vpid = gesuchtervpid

Bei der Abfrage des Datums bin ich mir nicht sicher, das ist datenbankspezifisch, probiers halt nicht, falls es nicht geht such nach irgendwelchen Funktionen zum Datumsvergleich oder frag mal im Access-Forum nach.

Grüße, Robert

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

schon aber…

SELECT *
FROM vertriebspartner, gebühren
WHERE
vertriebspartner.vpid = gebühren.vpid
AND
gebühren.datum = 31.4.2001
AND
vertriebspartner.vpid = gesuchtervpid

ja damit kriege ich alle vertriebspartner und alle gebuehren einträge, aber nicht wieviel die gebuehren aus dem feld „betrag“ in den ausgewählten datensätzen gesamt ergibt… nochmal:
ich habe einen vertriebspartner mit einer id und einen ganzen haufen gebühren deren grösse unter „betrag“ gespeichert ist… dem vp ordne ich sie über die vpid zu… sprich:
eine liste der vps in berlin (sagen wir 10) und die gebühren, die zwischen dem 1.3. und 1.4. angelaufen sind summiert pro vp

Gruss
Bytewalker

Ups, sorry, habe ich vergessen.

Über die GROUP BY Klausel kannst du Datensätze deren Inhalte eines bestimmten Feldes bzw. mehrerer Felder ident sind zusammenfassen, also zB alle Datensätze mit gleicher vpid.

Im SELECT kannst du dann über diverse Funktionen bestimmen wie er die Felder aus diesen Gruppen zusammenfassen sollen, wie zB SUM für summieren. Du kannst nur noch die Felder direkt ins SELECT nehmen die auch im GROUP BY sind (weil sonst ja nicht garantiert ist, dass sie für alle Datensätze ident sind).

Also z. B.:

feld1 feld2
a 1
a 2

SELECT feld1, SUM( feld2 ) FROM tabelle GROUP BY feld1
Würde ergeben:

a 3

Auf deine Abfrage angewandt:

SELECT SUM( betrag )
 FROM vertriebspartner, gebühren
 WHERE
 vertriebspartner.vpid = gebühren.vpid
 AND
 gebühren.datum = 31.4.2001
 AND
 vertriebspartner.vpid = gesuchtervpid
 GROUP BY vertriebspartner.vpid

Grüße, Robert

sieht gut aus, ich werde es morgen früh gleich mal probieren…

danke
Byte