![]() |
Datenbank: MySQL • Version: 5 • Zugriff über: ZEOS
SQl-Abfrage gesucht
Hallo,
ich soll ein Ergebnis aus Datensätzen liefern das so aussieht: Zeile 1: Nettosumme MwStSumme für Alle DS wo MwSt > 0 Zeile 2: Nettosumme MwStSumme für Alle DS wo MwSt = 0 Weis jemand wie ich das in ein SQL-Statement bringe? Ist bestimmt einfach nur durch meine Erkältung krieg ich grad garnix auf die Reihe :( Danke schonmal :angel: |
Re: SQl-Abfrage gesucht
Ungetestet:
SQL-Code:
SELECT SUM(Preis) AS Nettosumme
FROM Tabelle WHERE MwST > 0 UNION SELECT SUM(Preis) AS Nettosumme FROM Tabelle WHERE MwST = 0 |
Re: SQl-Abfrage gesucht
Ungetestet (und ich bin mir unsicher, weil ich noch zu wenig gemacht habe):
SQL-Code:
Das Ergebnis entspricht nicht ganz der Vorgabe, ist dafür vollständiger.
SELECT SUM(Preis) AS Nettosumme, MwST
FROM Tabelle GROUP BY MwST Gruß Jürgen |
Re: SQl-Abfrage gesucht
Also die UNION-Verison von Deddy funktioniert, jetzt brauche ich nur das gleiche nochmal anders:
Zeile: Monat, Summe der NettoBeträge mit MwSt, Summe der MwStBeträge mit MwSt, Summe der NettoBeträge ohne MwSt, Summe der MwStBeträge ohne MwSt, Gesamtsumme Wenn bei einer Unterabfrage kann ich mir vorstellen dauert das ziemlich lange, geht das ohne auch anders? |
Re: SQl-Abfrage gesucht
Wie sieht den die DB-Struktur aus?
|
Re: SQl-Abfrage gesucht
ich hab ne Tabelle:
ID,Datum, Netto, Rabatt, NettoNachRabatt, MwSt, Brutto da sind DS drin bei denen es MwSt geibt und welche ohne MwSt. ich ahb das mit den SubSelects jetzt gemacht, bekomme aber das Problem das ich wenn ich die MOnateweise ausgeben will innerhalb der Subselects keine Group by oder Order By verwenden kann und somit ich folgende Ausgabe bekomme: Monat1: Gesamt von Monat1-n Monat2: Gesamt von Monat1-n usw. das sieht jetzt so aus:
SQL-Code:
(Wie immer nicht genauso, aber vom Prinzip sieht es im Moment so aus)
select
(select sum(netto) from tabelle where mwst="0" and datum in "filterzeitraum")SummeOhneMwSt, (select sum(netto) from tabelle where mwst>"0" and datum in "filterzeitraum")SummeMitMwSt, sum(netto)GesamtSumme from tabelle where datum in "filterzeitraum" group by monate(datum) |
Re: SQl-Abfrage gesucht
Du könntest es mit einem Join versuchen:
SQL-Code:
select
t1.monat, sum(t1.netto) SummeOhneMwSt, (t2.netto) SummeMitMwSt, sum(t1.netto+t2.netto) GesamtSumme from tabelle t1, tabelle t2 where t1.datum "filterzeitraum" and t1.mwst=0 and t2.datum "filterzeitraum" and t2.mwst>=0 group by t1.monat, t2.monat |
Re: SQl-Abfrage gesucht
jetzt vervielfachen sich plötzlich die summen, keine Ahung um welchen Faktor, aber es sind Zahlen wie 5 Mio anstatt 800 :shock:
|
Re: SQl-Abfrage gesucht
Welche Summen?
Hier hab ich das in vergessen zu Kopieren
SQL-Code:
...
where t1.datum in "filterzeitraum" and t1.mwst=0 and t2.datum in "filterzeitraum" and t2.mwst>=0 ... |
Re: SQl-Abfrage gesucht
dieses sum(netto) schmeisst mir als ergebnis ein vielfaches von dem aus was eigentlich rauskommen sollte.
was genau passiert eigentlich in diesen statement? |
Re: SQl-Abfrage gesucht
Hast du die Bedingung korrigiert?
Er erzeugt 2 Abfragen und erzeugt einen Join daraus. |
Re: SQl-Abfrage gesucht
OK, ich hab zwar bis jetzt versucht das ganze eher weniger kompley zu mahcen aber ich poste jetzt vllt doch mal die momentane SQL-Abfrage:
SQL-Code:
ich bin grad dabei da etwas den Überblick zu verlieren :duck:
select
(sum(r1.NettoNachRabatt))NettoOhne, (sum(r1.MwSt))MwStOhne, (sum(r1.Betrag))GesamtOhne, (sum(r2.NettoNachRabatt))NettoMit, (sum(r2.MwSt))MwStMit, (sum(r2.Betrag))GesamtMit, (sum(r3.NettoNachRabatt))NettoSumme, (sum(r3.MwSt))MwStSumme, (sum(r3.Betrag))GesamtSumme from Rechnungen r1, Rechnungen r2, Rechnungen r3 where (r1.MwSt="0")and ((YEAR(FROM_UNIXTIME(r1.Erstellungsdatum))>="2007")AND(YEAR(FROM_UNIXTIME(r1.Erstellungsdatum))<="2007")) and ((((MONTH(FROM_UNIXTIME(r1.Erstellungsdatum))>="1")AND(MONTH(FROM_UNIXTIME(r1.Erstellungsdatum))<="6")AND(YEAR(FROM_UNIXTIME(r1.Erstellungsdatum))="2007"))OR((MONTH(FROM_UNIXTIME(r1.Erstellungsdatum))>"0")AND(YEAR(FROM_UNIXTIME(r1.Erstellungsdatum))<"2007")AND(YEAR(FROM_UNIXTIME(r1.Erstellungsdatum))>"2007")))) and (DAY(FROM_UNIXTIME(r1.Erstellungsdatum))>"0") and (r2.MwSt>"0")and ((YEAR(FROM_UNIXTIME(r2.Erstellungsdatum))>="2007")AND(YEAR(FROM_UNIXTIME(r2.Erstellungsdatum))<="2007")) and ((((MONTH(FROM_UNIXTIME(r2.Erstellungsdatum))>="1")AND(MONTH(FROM_UNIXTIME(r2.Erstellungsdatum))<="6")AND(YEAR(FROM_UNIXTIME(r2.Erstellungsdatum))="2007"))OR((MONTH(FROM_UNIXTIME(r2.Erstellungsdatum))>"0")AND(YEAR(FROM_UNIXTIME(r2.Erstellungsdatum))<"2007")AND(YEAR(FROM_UNIXTIME(r2.Erstellungsdatum))>"2007")))) and (DAY(FROM_UNIXTIME(r2.Erstellungsdatum))>"0") and ((YEAR(FROM_UNIXTIME(r3.Erstellungsdatum))>="2007")AND(YEAR(FROM_UNIXTIME(r3.Erstellungsdatum))<="2007")) and ((((MONTH(FROM_UNIXTIME(r3.Erstellungsdatum))>="1")AND(MONTH(FROM_UNIXTIME(r3.Erstellungsdatum))<="6")AND(YEAR(FROM_UNIXTIME(r3.Erstellungsdatum))="2007"))OR((MONTH(FROM_UNIXTIME(r3.Erstellungsdatum))>"0")AND(YEAR(FROM_UNIXTIME(r3.Erstellungsdatum))<"2007")AND(YEAR(FROM_UNIXTIME(r3.Erstellungsdatum))>"2007")))) and (DAY(FROM_UNIXTIME(r3.Erstellungsdatum))>"0") group by DATE_FORMAT(FROM_UNIXTIME(r1.Erstellungsdatum),"%m.%Y") |
Re: SQl-Abfrage gesucht
Vielleicht so (ungetestet)
SQL-Code:
SELECT t1.monat, SUM(t1.netto) AS SummeNetto, SUM(t2.netto) AS SummeBrutto, SUM(t1.netto + t2.netto) AS Gesamtsumme
FROM Tabelle t1 JOIN Tabelle t2 ON t2.monat = t1.monat WHERE t1.MwST = 0 AND t2.MwST > 0 AND t1.datum "filterzeitraum" GROUP BY t1.monat |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:00 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