Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Aloster am Januar 05, 2012, 11:39:45

Titel: Abfrage: Verrechnung der Felder einer Spalte einer Tabelle mit den Einzelfeldern
Beitrag von: Aloster am Januar 05, 2012, 11:39:45
Access 2007

Ich möchte eine Abfrage über eine Tabelle "Porto Zukauf" und eine Abfrage "Porto Verbrauch" erstellen.
Tabelle "Porto Zukauf" (wieviele Briefmarken haben ich insgesamt zugekauft) sieht folgendermaßen aus:

Porto    SummeZukauf
0,55 €   23
0,90 €   10
1,45 €   24


Abfrage "Porto Verbrauch" sieht so aus:

0,55   0,90   1,45  (Spaltenüberschriften)
     6        2      12

Nun möchte ich in einer Abfrage errechnen, wieviel SummeZukauf einer Breifmarke minus des Verbrauchs ist, also 23-6=17, 10-2=8 und 24-12=12. Ist sowas möglich? Oder muss ich erst die Abfrage "Porto Verbrauch"transponieren und dann eine Union bilden?
Titel: Re: Abfrage: Verrechnung der Felder einer Spalte einer Tabelle mit den Einzelfeldern
Beitrag von: MzKlMu am Januar 05, 2012, 11:58:51
Hallo,
Zukauf und Verbrauch gehört in eine Tabelle mit einem Feld zur Art (Zukauf/Verbrauch).
Der Verbrauch wird mit negativem Vorzeichen erfasst. Der Bestand ist dann einfach die Summe der Mengen gruppiert über das Porto.
Kurz und schmerzlos, jederzeit automatisch aktuell.
Das negative Vorzeichen lässt sich nach Auswahl der Art "Verbrauch" automatisiert eintragen.

Weitere Abfrage etc. sind nicht erforderlich. Das Vorgehen würde auch den Regeln eine Datenbank entsprechen.
Titel: Re: Abfrage: Verrechnung der Felder einer Spalte einer Tabelle mit den Einzelfeldern
Beitrag von: Aloster am Januar 05, 2012, 12:07:55
Danke für die Antwort. In dem Fall kann ich es nicht in eine Tabelle schreiben, weil der Verbrauch aus einer anderen Tabelle (Postein/ausgang Kunden) errechnet wird.
Titel: Re: Abfrage: Verrechnung der Felder einer Spalte einer Tabelle mit den Einzelfeldern
Beitrag von: MzKlMu am Januar 05, 2012, 12:40:25
Hallo,
dann mache mit einer Unionabfrage zuerst eine Tabelle in der Verbräche negativ werden. Dann geht wieder die gruppierte Abfrage (über die Union), die die Bestände ermittelt.
Titel: Re: Abfrage: Verrechnung der Felder einer Spalte einer Tabelle mit den Einzelfeldern
Beitrag von: Aloster am Januar 05, 2012, 12:47:24
Würdest du mir das an dem Beispiel erläutern können? Danke.
Titel: Re: Abfrage: Verrechnung der Felder einer Spalte einer Tabelle mit den Einzelfeldern
Beitrag von: MzKlMu am Januar 05, 2012, 12:57:28
Hallo,
dazu ist mehr Info notwendig.

Wie sieht die Abfrage "Porto Verbrauch" aus?
Titel: Re: Abfrage: Verrechnung der Felder einer Spalte einer Tabelle mit den Einzelfeldern
Beitrag von: Aloster am Januar 05, 2012, 13:31:54
Die Abfrage "Porto Verbrauch" basiert auf einer Abfrage "Porto Verbrauch Vorabfrage". Letztere listet alle Datensätze aus der Tabelle "Kontaktdaten" mit den Spalten ID, Postausgangsdatum, Medium, Zweck, Kontaktperson, Porto (auch zusammengesetztes Porto wie z.B. 1,45 € bestehend aus 2x0,45€ und 1x0,55€) auf, wo Porto > 0 bzw. nicht leer. Die Abfrage "Porto Verbrauch" selektiert aus der  Abfrage "Porto Verbrauch Vorabfrage" durch Wenn/Dann-Kriterien die verbrauchten Einzelmarken 0,45, 0,55, 0,90,   1,45 und deren Anzahl. Beispiel:

0,45   0,55   0,90   1,45  (Spaltenüberschriften)
     5        6        2      12

Und diese möchte ich mit der SummeZukauf aus der Tabelle "Porto" verrechnen:

Porto    SummeZukauf
0,45 €   17
0,55 €   23
0,90 €   10
1,45 €   24
Titel: Re: Abfrage: Verrechnung der Felder einer Spalte einer Tabelle mit den Einzelfeldern
Beitrag von: MzKlMu am Januar 05, 2012, 16:00:13
Hallo,
das ist ein ziemlich verkorkster Aufbau. Ich glaube auch nicht, dass sich mit dieen beiden Abfragen Dein Vorhaben lösen lässt. Zumindest nicht ohne ziemlichen Aufwand.
ZitatPorto (auch zusammengesetztes Porto wie z.B. 1,45 € bestehend aus 2x0,45€ und 1x0,55€)
Das ist schon mal ein grundsätzlicher Fehler. Die Portoausgaben sind in einer extra Tabelle als jeweils ein Datensatz zu erfassen und niemals mehrere Portos in einem Feld.
Und in diese extra Tabelle schreibt man dann auch den Zukauf.
Access erfordert zur Auswertung von Daten einen normalisierten Tabellenaufbau und der liegt nicht vor.
Wenn Du Dir diese Mühe des Umbaus nicht machen willst, muss die "Porto Verbrauch" Abfrage so geändert werden, dass je Porto ein Datensatz geschrieben wird und nicht ein Feld. Gleichzeigt werden in dieser Abfrage auch die Mengen mit -1 multipliziert, damit eine negative Zahl entsteht.
Mit einer Unionabfrage kannst Du jetzt die geänderte Tabelle "Porto Verbrauch" mit der Tabelle "PortoZukauf" zusammenfügen.
Mit einer weiteren tabelle kannst Du jetzt eine gruppierte Abfrage erstellen die die Mengen Summiert.

Eine einfachere Möglichkeit sehe ich nicht. Es sei denn, Du änderst die Struktur der DB.