Neuigkeiten:

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

Mobiles Hauptmenü

Summierung von mehreren Abfragen mit Abfrage

Begonnen von Paule, März 14, 2016, 13:55:57

⏪ vorheriges - nächstes ⏩

Paule

Hallo,

ich arbeite derzeit an einer Umsatzprognose.

Wir haben 4 unterschiedliche Einkommensarten.
Für jede dieser vier Einkommensarten habe ich eine Abfrage erstellt, die mir im gewünschten Zeitraum das zu erwartende Einkommen berechnet.
Jede dieser vier Abfragen hat dann unterschiedliche Datensätze (stehen für ein Verkauf, der Einkommen bringt) und diese Datensätze haben als eine Spalte den Ertrag, den sie für uns abwerfen.
In jeder dieser 4 Abfragen habe ich eine Summenzeile gebildet, die diesen Ertrag aufsummiert für alle Datensätze.

Ich habe also 4 Abfragen, die soweit funktionieren und korrekt je nach meinen gewünschten Kriterien die Einkommen anzeigen.

Nun könnte ich natürlich einfach nur diese vier Einkommen händisch zusammenrechnen, aber ich möchte, dass dies automatisch passiert und wollte dies über eine Abfrage machen.

Diese soll dann die Summen zusammenrechnen.

Ich habe mir im Abfrageentwurf die vier Abfragen gewählt, das entsprechende "Einkommensfeld" gewählt. Danach bin ich auf Summe gegangen und habe als Funktion Summe ausgewählt.

Nun passen allerdings die Werte nicht mit den Werten aus den einzelnen Abfragen überein. Und auch sonst sehe ich nicht, wie er auf diese Zahlen kommt (selbst unter Berücksichtigung aller Datensätze ist das nicht möglich).

Weiß jemand, woran das liegen könnte oder ob es noch einen cleveren Weg geben könnte?

el_gomero

Hallo,

ich kenne zwar dein Datenmodell nicht, aber eine Union-Abfrage könnte hier zum Ziel führen:

Select SumErtrag, 'Myqry1' From qry1
Union Select SumErtrag, 'Myqry2' From qry2
...


Eine Union muss direkt in der SQL-Ansicht eingebeben werden, ein GUI steht hier nicht zur Verfügung.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

MzKlMu

Hallo,
ZitatWir haben 4 unterschiedliche Einkommensarten.
wie sind da die Telle(n) aufgebaut ?
Gruß Klaus

Paule


MzKlMu

Hallo,
leider bist Du auf meinen Hinweis nicht eingegangen.

Wer eine Union benötigt, hat oftmals einen falschen Tabellenaufbau.
Gruß Klaus

Paule

Hallo Klaus,

ich verwende dafür keine Tabellen.
Die vier Einkommensarten berechne ich allesamt aus der Verkaufstabelle und ein paar weiteren Informationen, die ich zur Berechnung des daraus resultierenden Einkommens benötige, aus der Produkt-Tabelle.
Von daher weiß ich nicht genau, was ich dir darauf antworten kann.

MzKlMu

Hallo,
wenn das alles aus eine Tabelle kommt, so kannst Du doch die Gesamtsumme aus dieser Tabelle bilden.
Gruß Klaus

Paule

Nunja, ich habe vier EInkommensarten:

Leasinggebühren
Cash-Verkäufe
Ratengebühren

Dazu noch das Einkommen "Installationsgebühr", welche als Feld extra in tblVerkäufe angegeben wird.

Zur Berechnung der Einkommen aus den oben genannten Einkommensarten brauche ich weitere Informationen, die nicht in der Tabelle gespeichert sind. Diese muss ich mir aus anderen Tabellen holen bzw. als Annahme in ein Formular eingeben, z.B. Anzahl der Ratenzahlungen, Ratenzahlungshöhe, Nutzungsrate, Leasinggebühr, Produkte im Umlauf etc.

Ich habe mir über vier Abfragen jeweils das voraussichtliche Einkommen aus jeder Einkommensart anzeigen lassen und diese dann zusammengeführt.

Hat auch wunderbar funktioniert, so wie ich mir das vorgestellt habe. :)

MzKlMu

Hallo,
hast Du diese 4 Einkommensarten jeweils in einer Spalte ?
Gruß Klaus

Paule

Der SQL-Code meiner Union-Abfrage lautet:

Select Sum([CashSale]), 'TZS','Income through CashSales'
From [CF_CashSaleIncomeQ]
Union
Select Sum([InstallationFee]), 'TZS', 'Income Through Installation Fee'
From [CF_InstallmentFeeIncomeQ]
Union
Select Sum([InstallmentSum]), 'TZS', 'Income Through Installments'
From [CF_InstallmentIncomeQ]
UNION Select Sum([Income]), 'TZS', 'Income through Leasing'
From [CF_LeasingIncomeQ]
Union
Select Sum([LoanSum]), 'EUR', 'Income through Loans EUR'
From [CF_LoanIncomeEURQ]
UNION Select Sum([LoanSum]), 'USD', 'Income through Loans USD'
From [CF_LoanIncomeUSDQ];


Das Ganze sieht dann wie angehängt aus.


Wurliwurm

Zitat von: MarcusAgthe am März 15, 2016, 14:24:36
Das Ganze sieht dann wie angehängt aus.

Sieht doch gut aus auf den ersten Blick.
Mach noch die Benamsungen der Felder dazu, etwa:

Select Sum([CashSale]) AS Amount, 'TZS' AS IRGENDEINFELD,'Income through CashSales' AS Description
From [CF_CashSaleIncomeQ]
...

Um auf die Gesamtsumme in einem Betrag zu kommen, bietet sich dann eine Gruppierungsabfrage über diese Abfrage an, oder ein Formular mit Summenfeld.


Paule

Ich habe mir das als Bericht ausgeben lassen und da bilde ich mir dann die Summe. :)