Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Abfrage: Verrechnung der Felder einer Spalte einer Tabelle mit den Einzelfeldern

Begonnen von Aloster, Januar 05, 2012, 11:39:45

⏪ vorheriges - nächstes ⏩

Aloster

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?

MzKlMu

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.
Gruß Klaus

Aloster

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.

MzKlMu

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.
Gruß Klaus

Aloster


MzKlMu

Hallo,
dazu ist mehr Info notwendig.

Wie sieht die Abfrage "Porto Verbrauch" aus?
Gruß Klaus

Aloster

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

MzKlMu

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.
Gruß Klaus