Hallo Leute,
Ich arbeite an einem Projekt wo eine MySQL Datenbank zum Einsatz kommt. Der grösste Teil der Datenbankabfragen habe ich selbst hingekriegt, doch ein paar Abfragen waren dann doch zu kompliziert... Ich hoffe ihr könnt mir da helfen
Ich habe folgende Tabellen/Spalten (nur der Teil, der wichtig ist):
Beispieldatensätze:
Mein erster Ansatz sieht so aus, da fehlt aber wohl noch ein bisschen was:
Ausserdem würde ich gerne noch abfragen können, wieviel alle Artikel, die im Lager sind, zusammen kosten. In der Tabelle "parts" ist die vorhandene Menge in der Spalte "instock" abgelegt, mit dieser Anzahl soll der Artikelpreis multipliziert werden. Als Preis soll möglichst der Durchschnittspreis genommen werden, über alle verfügbaren Einkaufsinformationen. Bei den Einkaufsinformationen, die mehrere Preisinformationen haben, soll jeweils der erste Datensatz genommen werden wenn die Tabelle nach "min_discount_quantity" sortiert ist (der erste Datensatz ist dann immer auf die Bestellmenge "1" bezogen). Dieser Preis muss ausserdem noch durch "price_related_quantity" dividiert werden (hier steht eine "100" drin wenn 100 Stk. 10 Euro kosten, in "price" steht dann 10 Euro drin).
Die erste Abfrage sollte eigentlich nicht so kompliziert sein denke ich. Die zweite hats aber ganz schön in sich ;-) Die erste ist aber auch viel wichtiger...
Ich wäre sehr froh wenn mir hier jemand helfen könnte. Vielen Dank schonmal im Voraus!
Grüsse
neuling88
Ich arbeite an einem Projekt wo eine MySQL Datenbank zum Einsatz kommt. Der grösste Teil der Datenbankabfragen habe ich selbst hingekriegt, doch ein paar Abfragen waren dann doch zu kompliziert... Ich hoffe ihr könnt mir da helfen
Ich habe folgende Tabellen/Spalten (nur der Teil, der wichtig ist):
- Tabelle "parts": id, instock, [...]
- Tabelle "orderdetails": id, part_id, [...]
- Tabelle "pricedetails": id, orderdetails_id, price, min_discount_quantity, price_related_quantity, [...]
Beispieldatensätze:
- Artikel "A" gibts bei Lieferant "X", 1 Stk. für 10 Euro, 10 Stk. für 90 Euro und 100 Stk. für 800 Euro, oder bei Lieferant "Y" für 9 Euro/Stk.
- Artikel "B" gibts bei Lieferant "Z" (keine Preisinformationen)
- Artikel "C" (keine Einkaufsinformationen)
Mein erster Ansatz sieht so aus, da fehlt aber wohl noch ein bisschen was:
Code:
SELECT parts.id FROM parts
LEFT JOIN orderdetails ON orderdetails.part_id = parts.id
LEFT JOIN pricedetails ON pricedetails.orderdetails_id = orderdetails.id
WHERE pricedetails.id IS NULL OR orderdetails.id IS NULL
ORDER BY parts.name ASC
Ausserdem würde ich gerne noch abfragen können, wieviel alle Artikel, die im Lager sind, zusammen kosten. In der Tabelle "parts" ist die vorhandene Menge in der Spalte "instock" abgelegt, mit dieser Anzahl soll der Artikelpreis multipliziert werden. Als Preis soll möglichst der Durchschnittspreis genommen werden, über alle verfügbaren Einkaufsinformationen. Bei den Einkaufsinformationen, die mehrere Preisinformationen haben, soll jeweils der erste Datensatz genommen werden wenn die Tabelle nach "min_discount_quantity" sortiert ist (der erste Datensatz ist dann immer auf die Bestellmenge "1" bezogen). Dieser Preis muss ausserdem noch durch "price_related_quantity" dividiert werden (hier steht eine "100" drin wenn 100 Stk. 10 Euro kosten, in "price" steht dann 10 Euro drin).
Die erste Abfrage sollte eigentlich nicht so kompliziert sein denke ich. Die zweite hats aber ganz schön in sich ;-) Die erste ist aber auch viel wichtiger...
Ich wäre sehr froh wenn mir hier jemand helfen könnte. Vielen Dank schonmal im Voraus!
Grüsse
neuling88