Neuigkeiten:

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

Mobiles Hauptmenü

Zwei Summen in Abfrage fassen

Begonnen von silentwolf, Februar 14, 2012, 20:51:13

⏪ vorheriges - nächstes ⏩

silentwolf

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

silentwolf

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


Wurliwurm

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

silentwolf

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

Wurliwurm

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 ...)

silentwolf

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]


Wurliwurm

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.

silentwolf

Ok na werd es dann gleich mal probieren  :-\ hoffentlich bring ich das hin ggg

Danke auf alle Fälle!!

oma

Hallo,

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

Gruß Oma
nichts ist fertig!

silentwolf

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....


Wurliwurm

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, ....


silentwolf

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;




silentwolf

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

Wurliwurm

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.

silentwolf

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  :'(