![]() |
Datenbank: MySQL • Version: 5.0 • Zugriff über: MicroOLAP DAC
MySQL Summen berechnen
Hallo!
Ich habe ein Problem mit einer MySQL-Abfrage. Felder der Tabelle: - Kundennummer - Datum - Summe Diese Tabelle eine Übersicht der Kundenrechnungen. Jede Rechnung und Gutschrift wird in Kurzform darin gespeichert. Rechnungen positiv, Gutschriften negativ. Wie bekomme ich eine SQL-Abfrage mit den folgenden Feldern: Kundennr. Summe positiver Werte Summe negativerer Werte Summe aus positiv + negativ Abfrage wird nach Kundennr. gruppiert. Ich habe schon diverse JOINs ausprobiert, aber irgendwie komme ich nicht an meinem gewünschten Ergebnis ran. Bin mir auch nicht sicher, ob das überhaupt funktioniert. Hat jemand vielleicht eine Idee? Stephan |
AW: MySQL Summen berechnen
Und was hast du bisher?
Ich würde sagen durch brauchst 2 select count... und 1 Union-Abfrage. Sowas in der Art: Zitat:
|
AW: MySQL Summen berechnen
Ich würde auch ein UNION empfehlen:
SELECT kundennummer, SUM(summe) AS summe_rechnung, 0 AS summe_gutschrift FROM kundentabelle WHERE summe > 0 GROUP BY kundennummer UNION SELECT kundennummer, 0 AS summe_rechnung, SUM(summe) AS summe_gutschrift FROM kundentabelle WHERE summe < 0 GROUP BY kundennummer ORDER BY kundennummer |
AW: MySQL Summen berechnen
Ungefähr so (ungetestet):
Code:
select
kundennummer, sum(case when summe < 0 then 0 else summe end case) as positiv, sum(case when summe > 0 then 0 else summe end case) as negativ, sum(summe) as gesamt from tabelle group by kundennummer |
AW: MySQL Summen berechnen
Wenn ich das mit einer UNION mache, erscheint folgendes Ergebnis:
"kundnr" "summe_rechnung" "summe_gutschrift" "00005966" "1073,67" "0,00" "00005966" "0,00" "-83,46" Ich möchte das gerne in einer Zeile haben, und dass man eine extra Spalte hat, die mit den Summen rechnet, z.B. eine Prozentsatz ausrechnet oder die Gesamtsumme ausgibt. Somit wird die Sache kniffliger... Stephan |
AW: MySQL Summen berechnen
Wie wäre es hiermit?
Code:
Gruß
select Kundennummer,Rechnung,Gutschrift,Rechnung-Gutschrift "Differenz".....
from ( select Kundennummer,sum(Rechnung) as Rechnung, sum(Gutschrift) as Gutschrift,rechnung-Gutschrift "Differenz"..... from (bisherige Abfrage) group by Kundennummer ) K-H |
AW: MySQL Summen berechnen
@Olli73:
Mit der Case Anweisung hat es leider nicht geklappt. Habe das mal mit IF ausgetauscht und jetzt funktioniert es so wie ich es haben möchte. Danke dafür.
Code:
Was etwas unschön ist, dass man mit diesen langen SUM-Funktionen auch rechnen muss. Mit dem Namen, den man vorher der Spalte zugewiesen hat (positiv, negativ) geht es leider nicht.
select kundnr, sum(if(gesamt<0,0,gesamt)) as positiv,
sum(if(gesamt>=0,0,gesamt)) as negativ, sum(gesamt) as gesamt, ((sum(if(gesamt>=0,0,gesamt))*-1) * 100 / sum(if(gesamt<0,0,gesamt))) as anteil from kundenrechnungen where mandantenid = '000' group by kundnr; Gibt dafür eine Alternativ, eine quasi Variable, mit der man auch rechnen kann? Stephan |
AW: MySQL Summen berechnen
Zitat:
Zitat:
Code:
Deine bisherige Abfrage kannst du dabei gedanklich als Tabelle/View betrachten.
select *, Rechnewas
from (bisherige Abfrage) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz