1Danke
ERLEDIGT
JA
JA
ANTWORTEN
10
10
ZUGRIFFE
420
420
EMPFEHLEN
-
27.01.12 12:35 #1
- Registriert seit
- Mar 2009
- Beiträge
- 171
Ich hab eine Umsatzhitliste erstellt.
Nur wie stelle ich es an, dass die Summenumsätze vor dem Jahr 2001 durch 0,51129 geteilt werden, weil ja da noch die gute alte DMark am Start war?
Evtl. 2 Abfragen mit UNION verbinden?
Code :1 2 3 4 5 6 7 8 9 10
SELECT Sum(rechnungen.SUMME_NE) AS summe, kunden.NAME_1, kunden.KDNR FROM rechnungen Inner Join kunden ON kunden.KDNR = rechnungen.KDNR WHERE rechnungen.JAHR > '2001' GROUP BY rechnungen.KDNR ORDER BY summe DESC
-
27.01.12 12:43 #2
Ich würde das mit eine CASE/WHEN abfrage machen:
Code sql:1 2 3 4 5
SELECT CASE WHEN rechnungen.Jahr > '2001' THEN SUM(rechnungen.SUMME_NE) / EUREOUMRECHNER AS summe WHEN rechnungen.Jahr < '2001' THEN SUM(rechnungen.SUMME_NE) / DMARKUMRECHNER AS summe END
So in etwa, ungetestet!Die Schweine von heute sind unsere Schnitzel von morgen!
-
Nicht ganz. Das würde ein GROUP BY auf das Rechnungsjahr bedeuten, da der SUM in der Formel ist.
Was für eine DB ist es?
Bei MySQL kannst du mit IF() im SUM() arbeiten
Code sql:1 2 3
SELECT SUM(IF(rechnungen.Jahr <= 2001, (rechnungen.SUMME_NE/0,51129, rechnungen.SUMME_NE)) AS summe ...
Bei Oracle etc mit CASE und innerhalb der SUM()
Code sql:1 2 3 4 5 6 7
SELECT SUM(CASE WHEN rechnungen.JAHR <= 2001 THEN rechnungen.SUMME_NE/0,51129 ELSE rechnungen.SUMME_NE END) AS summe, ....
Ps. Ich verschiebs mal zu den Datenbanken....---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
27.01.12 13:17 #4
- Registriert seit
- Mar 2009
- Beiträge
- 171
-
Fast alle Datenbanken sind SQL Datenbanken. Sorry, doch diese Antwort ist etwa: Was für ein Auto fährst du? Ein Auto mit vie Räder.
Die erste schliessende Klammer gehört vor das Komma - mein Fehler
Code sql:1
SUM(IF(JAHR < '2002', (SUMME_NE/0.51129), SUMME_NE)) AS summe
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
27.01.12 14:03 #6
- Registriert seit
- Mar 2009
- Beiträge
- 171
Nun ich würde ja gerne konkret antworten, kann aber mit der Frage nicht wirklich etwas anfangen...
-- SQLversion 3.2.0.1
-- Server Version: 5.1.37
-- PHP-Version: 5.3.0
Ist es das, was Du wissen musst?
Es funktioniert übrigens, danke.
Mir fällt auf, dass ohne ELSE Anweisung alles nach 2002 nicht gerechnet wird und die Gesamtsummen jetzt schon stimmen ohne das man das explizit angibt.
Könnte man das mit ELSE noch unterteilen?
-
27.01.12 14:06 #7Die Schweine von heute sind unsere Schnitzel von morgen!
-
Mit PHP - wird wohl MySQL sein.
Zu deiner Frage: Die versteh ich leider gar nicht. Also den Sachverhalt versteh ich nicht. Ohne else ahst du alles und du willst das else noch unterteilen? Lass es doch weg wenn du so schon alles hast.
Und je, den else-teil kann man weiter unterteilen. Bei CASE WHEN kannst du auch beliebige Anzahl WHEN haben
Code sql:1 2 3 4 5 6 7 8 9 10 11 12 13 14
CASE WHEN jahr <= 2001 THEN 'a' WHEN jahr <= 2006 THEN 'b' WHEN monat =12 THEN CASE WHEN tag = 15 THEN 'x' ELSE 'y' END ELSE 'd' END
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
27.01.12 14:14 #9
- Registriert seit
- Mar 2009
- Beiträge
- 171
MySQL, und Danke, das war nur eine theoretische Frage.
Worin unterscheiden sich diese Formen, bzw. wann benutzt man welche Form?
oder z.B.:Code :1
mysql> SELECT IF(1>2,2,3);
Code :1 2
mysql> SELECT CASE 1 WHEN 1 THEN 'one' -> WHEN 2 THEN 'two' ELSE 'more' END;
-
Das IF() ist MySQL-Spezifiesch und kein allgemeines SQL. Zudem hat IF() nur Entweder/Oder. Kann verschiedenste Unterscheidungen machen. Studiere mal die Doku dazu.
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
27.01.12 14:23 #11
- Registriert seit
- Mar 2009
- Beiträge
- 171
Bin ich gerade bei... Vielen Dank.
Wem es noch interessiert:
http://dev.mysql.com/doc/refman/5.1/...functions.html
Ähnliche Themen
-
[SQL] Rechnen in einer Abfrage
Von error_on im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 20.10.11, 14:01 -
SQL-Abfrage innerhalb einer Funktion mit Parameter funktioniert nicht
Von qsrs im Forum PHPAntworten: 3Letzter Beitrag: 03.06.07, 12:07 -
AND Abfrage innerhalb einer m:n Beziehung
Von CObject im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 26.12.06, 20:10 -
Problem mit Rechnen und einer Abfrage
Von Kerwin im Forum Javascript & AjaxAntworten: 6Letzter Beitrag: 09.09.04, 16:55 -
Abfrage in einer 2ten Tabelle innerhalb einer Funktion****
Von coloxer im Forum PHPAntworten: 2Letzter Beitrag: 02.12.02, 16:59





Zitieren


Login





