Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Gewinn berechnen

Begonnen von Nadeshiko, Juli 25, 2016, 12:43:39

⏪ vorheriges - nächstes ⏩

Nadeshiko

Hallo,

hab eine Gesamttabelle mit Rechnungen (R) und Gutschriften (G).

Jetzt möchte gerne eine Abfrage erstellen, wo die Differenz drin steht.

Ich hab zwei Abfragen erstellt: eine mit R und eine mit G und eine dritte wo das eine vom anderen abgezogen wird. Leider:
1. listet er mir tatsächlich nur die Differenz raus, wenn G einen Betrag drin stehen hat..also muss ich wohl irgendwie noch eine 0 einbauen und
2. ich glaube es gibt eine einfachere Lösung als 3 Abfragen hierzu einzubauen und direkt von der Tabelle zu arbeiten. Da ich aber von SQL her kein Profi bin, kann mir evtl. jemand verraten wie ich vorgehen soll oder ein Beispiel nennen.

Danke!

MzKlMu

Hallo,
wie ist denn die Gesamttabelle aufgebaut ?

Zeige bitte mal den SQL Text der 3 Abfragen.
Gruß Klaus

MaggieMay

Hallo,
Zitatalso muss ich wohl irgendwie noch eine 0 einbauen
dazu kannst du vermutlich die NZ-Funktion einsetzen.
Freundliche Grüße
MaggieMay

Nadeshiko

Hallo!

Beleg: DebitorID: Betrag:
G        456789     89456 EUR
R        456789     200000 EUR

An sich, wenn ich nur die Beträge von Gutschriften mit (-) vordefiniere, dann wäre es schon erledigt bei der Summierung mit einer Abfrage.

Problem ist nur in der Tabelle wollen die Benutzer es ohne - dargestellt haben.

Zu den Abfragen:
1. Abfrage für Gutschrifen:
SELECT tblRechnungen.DebitorenID, Sum(tblRechnungen.Gesamtbetrag) AS SummeG
FROM tblRechnungen
GROUP BY tblRechnungen.DebitorenID, tblRechnungen.Beleg
HAVING (((tblRechnungen.Beleg) Like "CG" Or (tblRechnungen.Beleg)="G" Or (tblRechnungen.Beleg)="RK"));

2. Abfrage für Rechnungen:
SELECT tblRechnungen.DebitorenID, Sum(tblRechnungen.Gesamtbetrag) AS SummeR
FROM tblRechnungen
GROUP BY tblRechnungen.DebitorenID, tblRechnungen.Beleg
HAVING (((tblRechnungen.Beleg) Like "CR" Or (tblRechnungen.Beleg)="R" Or (tblRechnungen.Beleg)="VK"));


3 Abfrage:

daran abreite ich noch. Wobei ich mir sicher bin, dass es auch anders gehen sollte...

Grüße

Nadeshiko

:) Hat sich schon erledigt. Ich hab mit dem letzten Kommentar im Kopf schon die eigene Lösung gefunden:

Einfach EINE neue Abfrage erstellt, wo die Werte von G mit *-1 multipliziert werden.

SELECT tblRechnungen.DebitorenID, Left([Empfaenger],20) AS Firma, Sum(IIf([Beleg]="G" Or [Beleg]="CG" Or [Beleg]="RK",[Gesamtbetrag]*(-1),[Gesamtbetrag])) AS Gesamt
FROM tblRechnungen
GROUP BY tblRechnungen.DebitorenID, Left([Empfaenger],20)
ORDER BY tblRechnungen.DebitorenID;

Lachtaube

Die Tabelle ist zwar nicht ideal aufgebaut, aber mit einer Krücke kommt man ans Ziel.
SELECT r.DebitorenID,
       IIf([r].[Beleg] In ('CG','G','RK'),'G','R') AS Art,
       Sum(r.Gesamtbetrag * (1 - Abs(r.Beleg In ('CG','G','RK') ) * 2) ) AS Summe
  FROM tblRechnungen AS r
GROUP BY r.DebitorenID,
         IIf([r].[Beleg] In ('CG','G','RK'),'G','R');

Grüße von der (⌒▽⌒)

Nadeshiko

ja, eigentlich war es nicht mal zur irgendwelchen Auswertungen etc gedacht. Sondern lediglich zur Überschau. :)

Danke! Ich probiere mal gerne alles aus!