Abrechnung/Gebührenrechnung per SQL

Von: , Frage gestellt am Di, 17. Apr 2001

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

4 Antworten zu dieser Frage

  1. Antwort von nach einer Stunde 0 hilfreich
    Re: Abrechnung/Gebührenrechnung per SQL

    SELECT * 
    FROM vertriebspartner, gebühren
    WHERE 
    vertriebspartner.vpid = gebühren.vpid 
    AND
    gebühren.datum <= 31.3.2001 
    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]

    • Antwort von nach 2 Stunden 0 hilfreich
      schon aber...

      SELECT *
      FROM vertriebspartner, gebühren
      WHERE
      vertriebspartner.vpid = gebühren.vpid
      AND
      gebühren.datum <= 31.3.2001
      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

      • Antwort von nach 4 Stunden 0 hilfreich
        Re: schon aber...

        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.3.2001
        AND
        gebühren.datum >= 31.4.2001
        AND
        vertriebspartner.vpid = gesuchtervpid
        GROUP BY vertriebspartner.vpid
        


        Grüße, Robert

        • Antwort von nach 5 Stunden 0 hilfreich
          Re^2: schon aber...

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

          danke
          Byte

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!