phpbar.de logo

Mailinglisten-Archive

Abfrage in Anfrage?

Abfrage in Anfrage?

Frank Liebelt frank.liebelt@acst.de
Mon Dec 30 16:29:42 2002


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