SQL Abfrage
Hi Leute,
ich verzweifel mal wieder an einer Abfrage, bzw. an deren Aufbau.
Folgender Ausgang.
Die Tabelle Posten hat die unter anderem die Spalten Gesamt, Unternehmer, TransAnr, status
Die Spalte Gesamt enthält immer die Summe des einzlnen Posten (was dem Kunden für diesen Posten in Rechnung gestellt wird), die Spalte Unternehmer was der Unternehmer bekommt.
Die Spalte TransAnr kann auch den Wert "Gutschrift" enthalten, dann darf der Posten nicht mit in die Berechnung der Summe "Gesamt" einfliessen.
Die Spalte status kann verschiedene INT Werte enthalten, für die Summe der Spalte "Gesamt" darf sie nicht den Wert 3 & 4 haben, für die Summe der Spalte "Unternehmer" nicht den Wert 3 haben.
Ich möchte nun den monatlichen Gewinn ermitteln und diesen ausgeben, meine bisherige Abfrage sieht so aus:
Da fehlt aber die Geschichte mit dem status !=4 für die Berechnung der Summe "Gesamt". Ich denke das wird mit einer if Abfrage für die Summe "Gesamt" gemacht, weiß aber nicht wie.
SELECT MONTH(DATUM) AS Monat,
SUM(Gesamt) - SUM(Unternehmer) AS Summe
FROM posten
WHERE YEAR(DATUM) = YEAR(NOW())
AND status !=3
AND TransAnr !='Gutschrift'
GROUP BY 1
Das ergibt einen Fehler im Ergebnis. Eigentlich brauche ich das Ergebnis (SUMME) von den beiden folgenden Abfragen in einer Abfrage.
SELECT (SUM(Gesamt)) summe FROM posten WHERE status !=3 AND status !=4 AND posten.TransAnr !='Gutschrift' AND YEAR(DATUM) = YEAR(NOW())
- (minus)
SELECT (SUM(Unternehmer)) summe FROM posten WHERE status !=3 AND YEAR(DATUM) = YEAR(NOW())
= Ergebnis netto Gewinn
VIELEN DANK AN ALLE IM VORAUS!!!!
ich verzweifel mal wieder an einer Abfrage, bzw. an deren Aufbau.
Folgender Ausgang.
Die Tabelle Posten hat die unter anderem die Spalten Gesamt, Unternehmer, TransAnr, status
Die Spalte Gesamt enthält immer die Summe des einzlnen Posten (was dem Kunden für diesen Posten in Rechnung gestellt wird), die Spalte Unternehmer was der Unternehmer bekommt.
Die Spalte TransAnr kann auch den Wert "Gutschrift" enthalten, dann darf der Posten nicht mit in die Berechnung der Summe "Gesamt" einfliessen.
Die Spalte status kann verschiedene INT Werte enthalten, für die Summe der Spalte "Gesamt" darf sie nicht den Wert 3 & 4 haben, für die Summe der Spalte "Unternehmer" nicht den Wert 3 haben.
Ich möchte nun den monatlichen Gewinn ermitteln und diesen ausgeben, meine bisherige Abfrage sieht so aus:
Da fehlt aber die Geschichte mit dem status !=4 für die Berechnung der Summe "Gesamt". Ich denke das wird mit einer if Abfrage für die Summe "Gesamt" gemacht, weiß aber nicht wie.
SELECT MONTH(DATUM) AS Monat,
SUM(Gesamt) - SUM(Unternehmer) AS Summe
FROM posten
WHERE YEAR(DATUM) = YEAR(NOW())
AND status !=3
AND TransAnr !='Gutschrift'
GROUP BY 1
Das ergibt einen Fehler im Ergebnis. Eigentlich brauche ich das Ergebnis (SUMME) von den beiden folgenden Abfragen in einer Abfrage.
SELECT (SUM(Gesamt)) summe FROM posten WHERE status !=3 AND status !=4 AND posten.TransAnr !='Gutschrift' AND YEAR(DATUM) = YEAR(NOW())
- (minus)
SELECT (SUM(Unternehmer)) summe FROM posten WHERE status !=3 AND YEAR(DATUM) = YEAR(NOW())
= Ergebnis netto Gewinn
VIELEN DANK AN ALLE IM VORAUS!!!!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 197723
Url: https://administrator.de/contentid/197723
Ausgedruckt am: 15.11.2024 um 23:11 Uhr
3 Kommentare
Neuester Kommentar