View Full Version : SQL: Sort mit Rechenergebnis
Hallo, ich habe folgendes Problem:
In einer Tabelle gibt es den Erlös eines Produktes und den Listenpreis.
Es soll per SQL-Select die Differenz in EUR (erloes-liste) und in % (((erloes-liste)*100)/liste) berechnet werden.
Die Schwierigkeit: Die abgerufenen Zeilen sollen nach der %-Differenz sortiert sein.
Geht das überhaupt, oder muss ich zuerst in eine "Hilfsdatei" schreiben?
Danke für die Antworten
KaEl
Frank Hildebrandt
23-03-06, 13:22
select erloes-liste, (((erloes-liste)*100)/liste) as erg from meinedatei order by erg
Hallo, ich habe folgendes Problem:
In einer Tabelle gibt es den Erlös eines Produktes und den Listenpreis.
Es soll per SQL-Select die Differenz in EUR (erloes-liste) und in % (((erloes-liste)*100)/liste) berechnet werden.
Die Schwierigkeit: Die abgerufenen Zeilen sollen nach der %-Differenz sortiert sein.
Geht das überhaupt, oder muss ich zuerst in eine "Hilfsdatei" schreiben?
Danke für die Antworten
KaEl
Hi,
da machst du dann im "SELECT" (((erloes-liste)*100)/liste) AS Abweichung
und in der Order Klauses: "Order by Abweisung".
Gruß
Sascha
Nachtrag:
Mit ASC (Aufsteigend) oder DESC (Absteigend) kannst du die die Ergebnistabelle dann noch dementsprechend sortieren.
Order by FELD1 ASC
Gruß
Sascha
Hallo zusammen,
leider ist es doch nicht ganz so einfach. Ich "paste" mal das komplette SQL-Statement:
select artikel, sum(menge), sum(erloes), sum(liste), sum(delta),
(delta*100/liste) as proz
from tabelle
group by artikel
order by proz, artikel
Das funktioniert so leider nicht. Es gibt ja viele,viele Zeilen mit dem gleichen Artikel - die sollen alle kumuliert werden. Die %-Abweichung wird dann nur über die Summenzeile eines Artikels berechnet ... und dann soll danach sortiert werden.
Hat da jemand eine Idee?
Gruß
KaEl
Frank Hildebrandt
23-03-06, 15:28
Versuch den mal. Ich hoffe ich habe keine Tippfehler gemacht.
select artikel,
menge,
erloes,
liste,
delta,
(delta*100/liste) as proz
from
(select artikel,
sum(menge) as menge,
sum(erloes) as erloes,
sum(liste) as liste,
sum(delta) as delta
from tabelle
group by artikel) as dummy
order by proz, artikel
Super - das war's!!!
Herzlichen Dank für die Hilfe.
Schönen Abend noch
Karlhans