Mailinglisten-Archive |
Hallo zusammen, ich möchte bei einer Bestellverwaltung mit (vereinfacht) den Tabellen artikel, bestellung, bestellposten für jeden Artikel einen Wert (Anzahl, die beim Lieferanten bestellt werden soll: "empfohlen") ermitteln und (das ist mein Problem) diesen in der Tabelle artikel notieren. Hier die Query, mit der ich den Wert ermittle: SELECT DISTINCT IF ( ( IFNULL( SUM( bestellposten.anzahl ) , 0 ) - artikel.stock - artikel.lieanzahl + artikel.lieanzahlgeliefert ) >0, ( IFNULL( SUM( bestellposten.anzahl ) , 0 ) - artikel.stock - artikel.lieanzahl + artikel.lieanzahlgeliefert ), 0 ) + artikel.bestellen AS empfohlen, artikel.idartikel FROM artikel LEFT JOIN bestellung ON bestellung.bes_status <300 LEFT JOIN bestellposten ON bestellposten.artikel_idartikel = artikel.idartikel AND bestellung.idbestellung = bestellposten.bestellung_idbestellung GROUP BY artikel.idartikel Die Query macht folgendes: Sie addiert die Anzahlen der den Artikel betreffenden Bestellposten aus den laufenden (status < 300) Bestellungen (falls es welche gibt - dafür das IFNULL), zieht davon die vorhandene Anzahl (stock) ab, sowie die bereits beim lieferanten bestellte, zzgl. der schon gelieferten. Sie gibt nun eine Artikel-ID (idartikel) und den empfohlen-Wert aus. Ich möchte nun gerne diesen Wert, weil die Abfrage reicht lange dauert, per cronjob ausführen und für jeden Artikel in einem Feld artikel.empfohlen speichern. Meine Frage: Wie kann ich bzw. kann ich überhaupt eine UPDATE-Query formulieren, die die obige Query beinhaltet und dann den ermittelten Wert für jeden Artikel-Datensatz in das Feld 'empfohlen' schreibt? Oder muß ich mir erst mit der Query 30.000 Datensätze zurückgeben lassen, um diese dann mit 30.000 UPDATEs zurückzuschreiben? (Ich hoffe mal, die Antwort ist 'nö' :-)) Danke für Eure Ideen Tobias -------------- nächster Teil -------------- Ein Dateianhang mit Binärdaten wurde abgetrennt... Dateiname : nicht verfügbar Dateityp : application/pgp-signature Dateigröße : 189 bytes Beschreibung: Dies ist ein digital signierter Nachrichtenteil URL : http://lists.mushaake.org/pipermail/mysql-de/attachments/20060528/7dcc1736/attachment.bin
php::bar PHP Wiki - Listenarchive