Mailinglisten-Archive |
Hallo, > Probiers mal damit (nicht getestet): > > SELECT > t1.*, > sum(t2.STCK) as summe, > sum(t2.ANZ) as anzahl, > sum(t2.VER) as verbrauch, > sum(t2.GEW) as gewicht, > sum(t2.UNE) as rest > FROM > tabelle1 t1, > tabelle2 t2 > WHERE > t1.KURZ=t2.KURZ > AND > t2.KLA = '1' > GROUP BY > t1.ID > ORDER BY > verbrauch DESC; Diese Abfrage gibt mir nur den ersten gefundenen Satz der Tabelle 2 aus. In der tabelle2 kommt STI 2x vor. Die Summe der einzelnen Werte sind: 17 | 20 | 111 | 16 | 27 Als Ergebnis erhalte ich aber nur: +----+------+--------+------+-------+--------+-----------+---------+------+ | id | KURZ | NAME | JAHR | summe | anzahl | verbrauch | gewicht | rest | +----+------+--------+------+-------+--------+-----------+---------+------+ | 1 | STI | STI001 | 2001 | 12 | 14 | 12 | 10 | 5 | +----+------+--------+------+-------+--------+-----------+---------+------+ Dies entspricht dem ersten gefundenen Datensatz in der tabelle2. Der zweite vorhandene Satz wird weder angezeigt noch werden die einzelnen Werte addiert! Der Datensatz OIL fehlt komplett! Hier noch kurz der Inhalt der Tabellen: Tabelle1: +----+------+--------+------+ | id | KURZ | NAME | JAHR | +----+------+--------+------+ | 1 | STI | STI001 | 2001 | | 2 | OIL | KIUUS | 2001 | +----+------+--------+------+ Tabelle2: +----+------+------+------+------+------+------+------+ | id | KURZ | STCK | ANZ | VER | GEW | UNE | KLA | +----+------+------+------+------+------+------+------+ | 1 | STI | 12 | 14 | 12 | 10 | 5 | 1 | | 2 | STI | 5 | 6 | 99 | 6 | 22 | 2 | | 3 | OIL | 85 | 85 | 85 | 85 | 85 | 85 | +----+------+------+------+------+------+------+------+ Sonnst noch Ideen ? Ich habe jetzt noch einmal versucht die folgende Aussprache in SQL zu Übersetzen: (ohne Erfolg) Nehme aus dem ersten Datensatz der Tabelle1 den Inhalt von KURZ und prüfe ob dieser in der Tabelle2 vorhanden ist. Wenn JA summiere die Werte STCK,ANZ,VER,GEW,UNE aller gefundenen Sätze der Tabelle2. Gehe in der Tabelle1 zum nächsten und wiederhole das solange bis in Tabelle1 der letzte Datensatz erreicht ist. Danach sortiere mir das Ergebnis nach UNE wobei der höchste Wert oben steht. So! In der Ausgabe sollten jetzt eigentlich zwei Einträge stehen! Gruß Frank -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive