Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: silentwolf am Februar 14, 2012, 20:51:13

Titel: Zwei Summen in Abfrage fassen
Beitrag von: silentwolf am Februar 14, 2012, 20:51:13
Hallon nochmal :)

Vorab möchte ich sagen das wahrscheinlich solle Fragen schon gestellt wurden aber ich hab etwas Zeitdruck
und wollte Fragen ob mir jemand erklären könnte wie ich die Summen zweier Abfragen in eine bringen kann.

Ich habe Einnahmen und Ausgaben die ich in den verschiedenen Abfragen erstellt habe.
Also einmal Vst und einmal Ust. Ich möchte nun in einer Abfrage so denk ich zumiendest das ich das brauche
die beiden Summen miteinander vergleichen bzw. Berrechnen.

MwSt eingenommen Vst abzugsberechtigt.

Kann mir bitte jemand sagen wie man das zusammenbringt.

Vielen Dank für Euer Verständniss und Hilfe!!!


Schöne Grüße

Albert
Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: silentwolf am Februar 15, 2012, 09:43:43
Hallo nochmals,

tut mir leid das ich nochmals hier schreibe hab nur noch nicht ganz den Überblick wie ich folgendes am besten Löse.

Folgende Tabellen Struktur:

tblLieferant, tblLiefRechnung, tblLiefRechPosition diese sind alle von links nach Rechts miteinander verknüpft.

tblKunde, tblKunRechnung, tblKunRechPosition das selbe in grün!

Nun tblLiefRechPosition sind natürlich alle Ausgaben und in
tblKunRechPosition sind alle Einnahmen

Mit Abfragen habe ich nun die Steuern berechnet ... also soweit so gut nun muss ich aber die Einnahmen mit den Ausgaben bzw. die MwSt mit der VST subtrahieren.

Und da steh ich nun ein wenig an... brauche ich dazu noch eine eigene Tabelle?? Oder nur eine Abfrage?

Tut mir wie gesagt leid das ich Frage aber weis halt nicht weiter.

Wäre wirklich sehr sehr dankbar für einen Tipp!

Schöne Grüße

Albert

Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: Wurliwurm am Februar 15, 2012, 10:32:05
Ich weiß jetzt zwar nicht, inwieweit der eingebaute Abfrageassistent da unterstützen kann, aber:

Du kannst zwei verschiedene Abfragen verknüpfen mit dem UNION-Statement in SQL.

In dem Stil
SELECT 'MWST', .... FROM ... WHERE
UNION
SELECT 'VST', ... FROM ... WHERE

In einen weiteren Abfrage kannst Du dann den Saldo ausrechnen, indem Du die Zeilen aus der vorigen Abfrage gruppiest (da hilft der Abfrageassistent)

Gehen tut das auf jeden Fall, du solltest Dir UNION zu Gemüte führen.

Hoffe, das hilft ein bißchen

Johannes
Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: silentwolf am Februar 15, 2012, 10:38:40
Hallo Johannes,

vielen Dank für Deine Hilfe ich werde es mir ansehen und hoffentlich komm ich weiter :)
Geht den Union auch wenn die MwSt und Vst aus einem Ausdruck sind?



Danke

Albert
Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: Wurliwurm am Februar 15, 2012, 10:49:46
Zitat von: silentwolf am Februar 15, 2012, 10:38:40
Geht den Union auch wenn die MwSt und Vst aus einem Ausdruck sind?

Was meinst Du mit "Ausdruck"?

Wichtig beim Union ist, daß es eine feste Spalte gibt zur Unterscheidung und sonst die anderen Spalten beim Abfrageergebnis alle gleich heißen. Das heißt, Du mußt Dir erst einmal die Abfragen für VST und MWST so bauen, daß sie genau die gleiche Anzahl der Spalten haben und alle Spalte gleich heißen (gegebenenfalls mußt Du also Spalten in der Abfrage umbenennen mit ... AS ...)
Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: silentwolf am Februar 15, 2012, 11:09:31
Na ja die Vst und MwSt ist als Ausdruck in der Abfrage erstellt worden
Also eine Spalte die in der Abfrage erstellt worden ist und nicht als text feld in der tabelle.
z.B. MwSt: [ReP_UeberweisungsBetrag]-[Netto]

Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: Wurliwurm am Februar 15, 2012, 11:21:44
Zitat von: silentwolf am Februar 15, 2012, 11:09:31
Na ja die Vst und MwSt ist als Ausdruck in der Abfrage erstellt worden
Also eine Spalte die in der Abfrage erstellt worden ist und nicht als text feld in der tabelle.
z.B. MwSt: [ReP_UeberweisungsBetrag]-[Netto]

Ja, müßte gehen.
Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: silentwolf am Februar 15, 2012, 11:33:28
Ok na werd es dann gleich mal probieren  :-\ hoffentlich bring ich das hin ggg

Danke auf alle Fälle!!
Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: oma am Februar 15, 2012, 11:45:25
Hallo,

sollte man nicht Aggregatfunktionen  (DomWert; DomSumme) anwenden...

Gruß Oma
Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: silentwolf am Februar 15, 2012, 11:47:28
Hallo Oma,

danke auch Dir für Deinen input!
Na ich weis nicht hab grad so mit ach und krach eine Union abfrage geschafft aber das ist nicht was ich möchte :(
Jetzt sind von beiden Abfragen die Werte in einer Spalte enthalten.

Kenn mich leider hier nicht aus weis nicht recht wie das funktioniert.
Hab auch schon mit DomWert versucht aber auch irgend einen Fehler gemacht....

Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: Wurliwurm am Februar 15, 2012, 13:22:31
Zitat von: silentwolf am Februar 15, 2012, 11:47:28
Jetzt sind von beiden Abfragen die Werte in einer Spalte enthalten.

Dann mach es halt mit 2 Spalten, und zwar so, daß in der einen Abfrage die Spalte MWST gefüllt aber VST leer ist und in der anderen Abfrage es umgekehrt ist. Das geht mit Union.

SELECT 'MWST', ...., 0, tabelle1.mwst, ....
UNION
SELECT 'VST', ...., tabelle2.VST, 0, ....

Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: silentwolf am Februar 15, 2012, 14:24:41
Hallo...danke nochmal für Deine Antwort!

Leider hab ich keine Ahnung wie das funktioniert.

Hier ist mal die Abfrage die mir die Ausgaben ermittelt. Diese hab ich für diesen Zweck "qyr1Ein" genannt

SELECT tblRechnung.Re_ID, tblRechnung.Re_ReNo, tblRechnung.Re_BezahltAm, tblRechPosition.ReP_UeberweisungsBetrag, tblSteuersatz.St_Satz, [ReP_UeberweisungsBetrag]/(1+[St_Satz]/100) AS Netto, [ReP_UeberweisungsBetrag]-[Netto] AS Steuer
FROM tblSteuersatz INNER JOIN (tblRechnung INNER JOIN tblRechPosition ON tblRechnung.Re_ID = tblRechPosition.ReP_Re_Id) ON tblSteuersatz.St_ID = tblRechPosition.ReP_St_Id
WHERE (((tblRechnung.Re_BezahltAm) Between #1/1/2011# And #3/31/2011#))
ORDER BY tblRechnung.Re_BezahltAm;


Und hier die Abfrage die mir die Einnahmen zurück gibt

SELECT tblLieferant.Lief_ID, tblLieferant.Lief_Name, tblLiefRechnung.LiefRe_LiefReNo, tblLiefRechnung.LiefRe_BezahltAm, tblLiefRechPosition.LiefReP_LiefRechBetrag, tblVerwendungszweck.VerZw_Name, tblSteuersatz.St_Satz, tblLiefRechPosition.LiefReP_LiefUeberweisungsBetrag, [LiefReP_LiefUeberweisungsBetrag]/(1+[St_Satz]/100) AS Netto, [LiefReP_LiefUeberweisungsBetrag]-[Netto] AS Steuer
FROM tblVerwendungszweck RIGHT JOIN (tblSteuersatz RIGHT JOIN ((tblLieferant INNER JOIN tblLiefRechnung ON tblLieferant.Lief_ID = tblLiefRechnung.LiefRe_Lief_Id) INNER JOIN tblLiefRechPosition ON tblLiefRechnung.LiefRe_ID = tblLiefRechPosition.LiefReP_LiefRe_Id) ON tblSteuersatz.St_ID = tblLiefRechPosition.LiefReP_St_Id) ON tblVerwendungszweck.VerZwID = tblLiefRechPosition.LiefReP_VerZw_Id
WHERE (((tblLiefRechnung.LiefRe_BezahltAm) Between #1/1/2011# And #3/31/2011#))
ORDER BY tblLiefRechnung.LiefRe_BezahltAm;



Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: silentwolf am Februar 15, 2012, 14:26:51
Tut mir leid hab zufrüh gedrückt  ::)

Weis leider nicht wie ich es schreiben muss um es auswerten zu können  :(


Danke schon mal im Voraus!

Albert
Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: Wurliwurm am Februar 15, 2012, 15:55:37
Hi Albert,

an der Hand nehmen kann ich Dich leider nicht :-)

In der ersten Spalte von der ersten Query steht Re-Id und in der zweiten Query steht an der ersten Stelle Lief_ID. Das kann schon mal nicht sein.

Die Spalten in den Berichten für die beiden Abfragen müssen genau die gleiche Bedeutung haben und gleich heissen.
Wenn das erledigt ist, dann füge in jede Query an erster Stelle ein künstliche Spalte ein à la
SELECT 'EINS', tblLieferant.Lief_ID AS Geschaeftspartner_ID ...
SELECT ZWEI', tblKunde.Kund_ID AS Geschaeftspartner_ID ...
Anschließend kannst Du die die SQLs der beiden Querys mit UNION verknüpfen.

Aber nachdem was ich gesehen habe mischt Du hier Äpfel mit Birnen Sinnvoll ist es, wenn Du eine Belegstruktur für Kunden und eine weitgehend identische Struktur für Lieferanten hast und dann die Rechnungen eines Monats in einer Abfrage zusammenliest und daraus die Umsatzsteuerzahllast errechnest. Ich bin mir aber nicht so sicher, was Du da machst. Vielleicht ist es doc besser, das ganze mit Programmierung zu lösen als nur mit Abfragen.
Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: silentwolf am Februar 15, 2012, 17:12:51
Hallo Wurmiwurm,

ja das glaub ich Dir gern das Du mir nicht die Hand geben kannst gg
Ich versuche es ja eh aber leider ohne Erfolg :(
Hab noch nie eine Union Abfrage erstellt deshalb ist es nicht ganz so einfach für mich.

Ich komme glaub ich aber Näher ... es wäre halt schön wenn Du vieleicht die Namen verwenden könntest Die ich
auch in meiner Abfrage habe dann würde ich mich vieleicht leichter tun und es besser verstehen.  :-\

Also ich hab nun die Abfrage qyr1Aus und qyr1Ein so abgeändert das ich die selbe anzahl spalten habe.

Wenn ich nun eine Spalte einfüge also z.B. Eins in die Spalte schreibe erscheint diese Ausdr: [Eins] das selbe in der anderen Abfrage.
Also das funktioniert mal nicht oder?

Nun hab ich es mal weg gelassen und diese Unions Abfrage erstellt

Select 'MwSt' From qyr1Ein
UNION Select 'VST' From qyr1Aus;


Wenn ich nun die Abfrage ausführe bekomme ich eine Spalte mit MwSt und in der gleichen Spalte darunter VSt.

Also denke ich bin ich auf den richtigen weg oder???

Tut mir ja wirklich leid das ich mich so anstelle  :'(

Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: database am Februar 15, 2012, 20:55:43
Hallo Albert,

versuch mal eine neue Abfrage zu erstellen, für dieser die beiden Abfragen aus deinem vorigen Beitrag hinzu und gib im SQL-Abschnitt ein:

SELECT SUM(qry1Ein.MwSt) - SUM(qry1Aus.VSt) AS [Für die Fekter]

HTH
Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: Wurliwurm am Februar 15, 2012, 20:57:33
Zitat von: silentwolf am Februar 15, 2012, 17:12:51
Ich komme glaub ich aber Näher ... es wäre halt schön wenn Du vieleicht die Namen verwenden könntest Die ich
auch in meiner Abfrage habe dann würde ich mich vieleicht leichter tun und es besser verstehen.  :-\

Ein allgemeines Beispiel gebe ich Dir gerne nochmal, aber den Transfer in das Buchhaltungsmodell mußt Du machen, da will ich mich nicht vollständig reindenken müssen.

qryUNION_Aepfel_und_Birnen:
SELECT 'Apfel' AS Obsttyp, tblAepfel.AepfelID as ObstID, tblAepfel.Name AS ObstName, ( tblAepfel.KG_Gewicht * 1000 ) AS Aepfel_Gramm, 0 FROM tblAepfel
UNION
SELECT 'Birne' AS Obsttyp, tblBirnen.BirnenID as ObstID, tblBirnen.Bezeichnung AS ObstName, 0, tblBirnen.GR_Gewicht AS Birnen_Gramm FROM tblBirnen

darauf die Auswertung, wo die Differenz aus dem Gesamtgewicht errechnet wird:

SELECT SUM(Aepfel_Gramm) as Apfelgesamtgewicht, SUM(Birnen_Gramm) as Birnengesamtgewicht, SUM(Aepfel_Gramm) - SUM(Birnen_Gramm) as Differenzgewicht FROM qryUNION_Aepfel_und_Birnen

Zitat
Wenn ich nun die Abfrage ausführe bekomme ich eine Spalte mit MwSt und in der gleichen Spalte darunter VSt.
Also denke ich bin ich auf den richtigen weg oder???

Ja. Die künstliche Spalte ist dazu da, um in der Abfrage die einzelnen Teilqueries unterscheiden zu können. Im obigen Beispiel könntest Du auf die obere Abfrage zum Beispiel eine weitere Abfrage machen wie
SELECT COUNT(*) AS AnzahlAepfel from qryUNION_Aepfel_und_Birnen WHERE Obsttyp = 'Apfel'

Hoffe das hilft weiter.
Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: silentwolf am Februar 15, 2012, 22:28:43
Danke an Euch beiden!!
Ich muss da noch etwas mehr herumprobieren leider komm ich noch nicht ganz dahinter :( aber ich werde drann bleiben :)

Auf alle Fälle vielen Dank für Eure Mühe  ;D
Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: silentwolf am Februar 19, 2012, 08:30:25
Guten Morgen Peter,

was meinst Du denn bitte mit
[Für die Fekter]
Funktioniert leider noch nicht :(

Schöne Grüße

Albert
Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: database am Februar 19, 2012, 08:41:05
Hallo, guten Morgen Albert,

'Für die Fekter' ... reine Scherzhaftigkeit ... USt - Vorsteuer ... das Ergebnis bekommt der (die) Finanzminister(in)

Was funktioniert denn da nicht...
du hast ja die zwei Abfragen erstellt, welche die Gesamtsummen der MwSt und der VSt berechnen.
Wenn deren Ergebnisse stimmen und davon gehe ich aus - dann kannst du diese Beiden Abfragen so wie ich unten angegeben habe verwenden.

SELECT SUM(qry1Ein.MwSt) - SUM(qry1Aus.VSt) AS [MwStRest]

Erstelle eine neue Abfrage und hole statt Tabellen diese beiden Abfragen in den Entwurf.
Wechsle dann in die SQL-Ansicht und schreibe dort die obige SQL rein.
Führe dann die Abfrage aus - das muss doch gehen  :-\
Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: silentwolf am Februar 19, 2012, 08:56:56
Hallo Peter,

schön das Du Dich gleich gemeldet hast!

Na ja ich hab ja die Abfragen erstellt funktioniert auch gut
Nur mit der Neuen Abfrage funktioniert es noch nicht.

SELECT SUM(qry1Ein.MwSt) - SUM(qry1Aus.VSt) AS [MwStRest]

wenn ich diese Zeile in die Neue Abfrage einfüge so wie Du es beschrieben hast dann kommt eine Parameter Abfrage für MwSt und danach die für die Vst ??


Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: database am Februar 19, 2012, 11:43:14
Hallo Albert,

ich habe die Feldbezeichnungen nach deinem Posting benannt:

Zitat
Select 'MwSt' From qyr1Ein
UNION Select 'VST' From qyr1Aus;

Eine Parameterabfrage kommt dann, wenn UNBEKANNTE Feldbezeichnungen verwendet werden - möglicherweise heißen die Felder 'MwST' und 'VST' in deinen beiden Abfragen anders.
Prüfe das bitte mal nach oder poste die SQL der beiden Abfragen (qyr1Ein und qyr1Aus) wenn du nicht sicher bist.

p.s. Nachtrag:

Du kannst das aber auch wie weiter oben beschrieben als UNION-Lösung bewerkstelligen indem du deine UNION-Abfrage leicht veränderst...


Select SUM(MwSt),0 as Vorsteuer From qyr1Ein
UNION
Select 0,Sum(VST) From qyr1Aus;


...also hier die Pseudofelder einbaust - damit stehen MwSt-Beträge und VSt-Beträge nebeneinander in eigenen Spalten und nicht untereinander.

Diese Abfrage benennst du z.B. qrySteuer und erzeugst dann eine neue Abfrage in die du diese Abfrage im Entwurfsmodus einfügst.
Die SQL der neuen Abfrage z.B. qryFinanzamt könnte dann so lauten:

SELECT SUM(MwSt) as Mehrwertsteuer, SUM(VSt) as Vorsteuer, SUM(Mehrwertsteuer) - SUM(Vorsteuer) AS Steuerdifferenz From qrySteuer;

Edit: Typo
Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: silentwolf am Februar 19, 2012, 11:56:47
Hallo Peter,

also ich werde es so gut wie möglich beschreiben was ich genau habe.
Also eine Abfrage qyr1Aus dort habe ich im Entwurffenster 5 Spalten
In der zweiten Abfrage qyr1Ein auch 5 Spalten die selben Spalten.
In beiden Abfragen habe ich die Summen Zeile eingefügt.


Die Spalten haben unterschiedlich viele Datensätze ...logisch da ja nicht gleich viele Ausgaben wie Einnahmen vorliegen.

Jetzt hab ich eine Neue Abfrage erstellt ...im Entwurffenster gebe ich beide Abfrage dazu... ohne Verknüpfung...
Wenn ich nun die Abfrage die im Zitat steht einfüge dann bekomme ich eine Spalte mit einem Feld MwSt und einem darunter liegenden Feld VST

Also müsste es doch stimmen oder??

Aber wie bekomme ich denn nun die Summen dort hinein??????

Hab ja alles so gemach wie Du es beschrieben hast und nichts an irgendwelchen Namen geändert

Kenn mich leider nicht aus.

Und morgen früh muss ich es fertig haben  :'(





Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: database am Februar 19, 2012, 12:00:52
Hallo Albert,

ich sende eben eine PN an dich
Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: silentwolf am Februar 19, 2012, 12:10:23
Hallo Peter,

danke werd mich gleich darum kümmern!!


Vielen Dank

Albert
Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: database am Februar 20, 2012, 07:41:06
Die UNION-Variante funktionierte.
Titel: Re: Zwei Summen in Abfrage fassen
Beitrag von: silentwolf am Februar 21, 2012, 08:18:08
Danke Peter!!


Super na jetzt geht es ja wie geschmiert ;D

Schöne Grüße

Albert