Hallo an Alle,
ich hab da ein kleines kompliziertes Problem...
Vielleicht könnte mir hier jemand auf die Sprünge helfen.
Hab hier von einem Bekannten eine Datenbank für die er eine neue 'Artikelstatistik' braucht.
Eigentlich was ganz einfaches, nur klappt das mit dem summieren über die entsprechenden Zeilen einfach nicht.
Also folgendes soll ausgegeben werden:
Code:
ArtikelNr | Farbe | Gr. | Best. M. | Gelief. M. | Warenwert | Gelief. Wert
02165 grün 54 10,0 6,00 20,0 12,0
Das ganze kann ich derzeit nur über die 2 Querys ausgeben (siehe unten).
Es müsste aber zu einem Query zusammengefasst werden, da ggf. gewisse Kriterien gesetzt werden müssen (z.B. WHERE bestellmenge > 500)
Das Problem wenn ich versuche in der ersten Abfrage noch sum(bestellmenge) abzufragen, stimmt das Ergebnis nicht mehr!
Er summiert fröhlich alles was ihm in den Weg kommt. (Und sum(DISTINCT wert) funktioniert erst in mySQL 5.x wieder)
Wie gesagt es läuft ja, nur kann ich jetzt nicht mehr die Abfrage begrenzen...
Ich kann in Abfrage zwar die Liefermenge als Kriterium angeben, aber nicht in Abfrage 2.
Außerdem ist das ganze unschön, langsam etc.
Ich hoffe irgendjemand weis was ich meine, hat einen Lösungsansatz...
Bin nämlich vollkommen mit meinem Wissen am Ende :P
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Das DB Design (Mysql: 4.1.15):
Tabelle: Auftraege (ca. 4500 Einträge)
Code:
oID als Primärschlüssel
div. attribute ...
bestellmenge decimal(5,2)
artikelNR vchar(10) (index)
farbe vchar(32) (index)
groesse vchar(10) (index)
preis decimal(5,2)
Tabelle: rechnungen (ca. 3800 Einträge)
Code:
bID als Primärschlüssel
div. attribute ...
liefermenge decimal(5,2)
Die 2 Abfragen bisher:
Abfrage 1:
Code:
SELECT
O.artikelNR, O.farbe, O.groesse, sum(B.liefermenge), sum(B.liefermenge) * O.preis AS lieferwert
FROM
auftraege AS O
LEFT JOIN
rechnungen AS B ON B.oID = O.oID
GROUP BY
O.artikelNR, O.farbe, O.groesse
ORDER BY
O.artikelNR, O.farbe, O.groesse ASC
Abfrage 2:
Code:
SELECT
sum(O.bestellmenge), sum(O.bestellmenge) * O.preis AS bestellwert
FROM
auftraege AS O
GROUP BY
O.artikelNR, O.farbe, O.groesse
ORDER BY
O.artikelNR, O.farbe, O.groesse ASC