Hallo zusammen
Aus einer Umsatztabelle (tbl_intake) möchte ich eine Zusammenfassung erstellen. Und zwar sollen Kunde, Kundenland, Kundenbetreuer, Verkaufssaison und Produktgruppe gruppiert angezeigt werden.
Das komplizierte daran ist, dass in den Feldern Customer, Country und Productgroup nicht immer der selbe Wert gespeichert ist, obwohl das selbe gemeint wäre. Deshalb gibt es eine Tabelle tbl_valuegroups, welche diese Varianten zusammenfasst.
In der Tabelle tbl_advisormapping wird jeder Kunde-Land-Produktgruppen-Kombination ein Betreuer (=advisor) zugeordnet.
Ich benütze momentan folgende Abfrage:
SELECT a.customer, a.country, a.advisor, i.season, a.productgroup, sum(i.quantity), sum((i.unitprice*i.quantity))
FROM tbl_intake i
LEFT JOIN tbl_advisormapping a
ON (a.customer = (select title from tbl_valuegroups where grouptype=‚customer_intake‘ and level=‚2‘ and item=i.customer)
AND a.country = (select title from tbl_valuegroups where grouptype=‚country‘ and level = ‚2‘ and item=i.country)
AND a.productgroup = (select title from tbl_valuegroups where grouptype=‚productgroup‘ and level=‚2‘ and item = i.productcategory))
GROUP BY a.customer, a.country, a.productgroup
*** Das Problem: ***
Die grosse Umsatztabelle (tbl_intake) enthält ca. 30’000 Einträge. Die ganze Abfrage dauert nun etwa 6-7 Stunden.
Gibt es eine Möglichkeit, die Abfrage anders zu formulieren, so dass ich eine bessere Performance erreiche?
Bei Unklarheiten gehe ich natürlich noch weiter ins Detail. Also einfach fragen.
Danke für eure Mühen.
Gruss,
Janosh