Ich habe folgende Tabelle:
- OrderID
- ProduktID
- RegionsID
- Restmenge
- Preis
- Tagesverkauf
Was ich gerne hätte wäre:
Eine Tabelle gruppiert nach ProduktID und RegionsID mit dem jeweiligen (zu erwartenden) Gewinn für dieses Produkt und diese Region. Dabei soll folgendes zugrunde gelegt werden:
Der Preis ist der Minimalpreis für das Produkt in dieser Region, wobei nur Orders mit einer Restmenge > 5 gezählt werden sollen
[highlight=sql]select
ProduktID,
RegionsID
min(Preis) as MINP
from Verkaufsdatenbank
where Restmenge>5
group by ProduktID, RegionsID
order by min(Preis) desc[/highlight]
Die Verkaufsmenge soll dem unteren Quartil entsprechen, also praktisch der Wert TOP 25% der Tagesverkäufe sein:
[highlight=sql]set @b=1;
select @b:=ceil(count(orderID)/4)
from Verkaufsdatenbank
where ProduktID
= 1236 and RegionsID=30000142;
PREPARE STMT FROM ‘select Tagesverkauf
as erwarteter_Tagesverkauf
from Verkaufsdatenbank where ProduktID
= 1236
and RegionsID=30000142
order by Tagesverkauf desc
LIMIT ?,1’;
EXECUTE STMT USING @b;
[/highlight]
Wie man sieht, muss ich allerdings bei meiner Lösung noch per Hand die ProduktID und RegionsID eintragen
Wie mache ich es, dass er mir jetzt eine Tabelle zusammenbaut, die dann so aussieht:
- ProduktID
- RegionsID
- erwarteter_Tagesverkauf
- Gewinn
Gruppiert nach ProduktID und RegionsID sortiert nach Gewinn desc
Ich verzweifele schon - sitze jetzt gut 2 Tage daran.