Hallo,
ich habe momentan eine sehr verworrene Tabellen-Konstellation.
Über kurz oder lang werde ich diese ändern müssen.
Aber aus Neugier interessiert mich folgendes:
Ist es durch geschickte Umstellung und Anpassung nachfolgender Abfrage möglich, alle Daten aus der Tabelle product_group anzuzeigen, und nur falls vorhanden die Summe (assessment_basis) über den im WHERE angegeben Bereich?
$sql\_string="SELECT
pg.id AS product\_group\_id,
sum(d.assessment\_basis) AS assessment\_basis
FROM product\_group pg
LEFT JOIN product\_group\_topic pgt ON pgt.id = pg.product\_group\_topic\_id
LEFT JOIN data d ON pg.id = d.product\_group\_id
LEFT JOIN trade t ON d.trade\_id=t.id
LEFT JOIN user u ON u.id = t.user\_id
LEFT JOIN mitarbeiter m ON u.user\_id = m.userkennung
LEFT JOIN mitarbeiter\_detail md ON m.userkennung = md.userkennung
LEFT JOIN abteilung a ON md.abteilung\_nr = a.abteilung\_nr
LEFT JOIN bereich b ON a.bereich\_nr = b.bereich\_nr
WHERE b.bereich\_nr = 300
GROUP BY pg.id, t.month
ORDER BY pg.id ASC, t.month ASC";
Es geht mir hier speziell um diese Abfrage, ohne die Tabellen zu ändern, das die Tabellen nicht mehr sauber sind ist mir klar, aber mich interessiert, ob es eine Möglichkeit gibt.
Im speziellen entsteht ein Problem wenn in der Tabelle data für eine product_group_id keine Daten vorhanden sind, somit wird product_group.id auch nicht ausgelesen.
Genutzt wird MySQL 5.x.
Leider fehlen mir ein wenig die Kenntnisse mit den JOINs.
Danke und Gruß
Marcel