Hallo, liebe Forengemeinde.
Ich steh mal wieder vor einem Problem, und zwar hab ich eine Access - Tabelle welche in Delphi mittels ADO in einem JvDBTreeView (Jedi)
angezeigt wird, mit folgendem Aufbau:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| ID | PARENTID | PROJECTID | BEZEICHNUNG 1 | 0 | 19 | EG 2 | 1 | 19 | Achse A-D 3 | 1 | 19 | Achse E-G 4 | 0 | 19 | 1. OG 5 | 4 | 19 | Achse A-D 6 | 4 | 19 | Achse E-G usw. |
Und diese wird als TreeView anhand PARENTID so angezeigt:
EG
- Achse A-D
- Achse E-G
1.OG
- Achse A-D
- Achse E-G
In einer weiteren Tabelle habe ich jeweils ein Aufmaßblatt mit folgendem Aufbau:
Quelltext
1: 2: 3: 4: 5:
| ID | PROJECTID | GRUPPE | BEZEICHNUNG | ABMESSUNGEN 1 | 19 | 2 | Wand 1 | 3,45 * 3,36 2 | 19 | 3 | Wand 2 | 7,31 * 3,36 3 | 19 | 6 | Wand 1 | 2,25 * 1,25 usw. |
Nun zu meinem eigentlichen Problem , ich zeige nun mit folgendem SQL-Code die Gruppen an
zu denen noch kein Eintrag in der Aufmaßblatttabelle vorhanden ist.
Störend ist nur, sollte schon zu allen Kindeinträgen (PARENTID <> 0) bsp. im EG , Einträge im Aufmaßblatt vorhanden
sein, so wird dennoch der Elterneintrag (PARENTID = 0) als EG im Tree angezeigt.
EG
1.OG
- Achse A-D
- Achse E-G
Wie bekomme ich es hin, das halt nur Elterneinträge angezeigt werden wo auch Kindereinträge vorhanden sind.
SQL-Anweisung
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| SELECT Gruppen.ID, Gruppen.PARENTID, Gruppen.ProjektID, Gruppen.Bezeichnung FROM Gruppen
LEFT JOIN (SELECT DISTINCT Aufmasse.ProjektID, Aufmasse.Gruppe FROM Aufmasse WHERE Aufmasse.ProjektID = 19) AS GrAbfrage
ON Gruppen.ID = GrAbfrage.Gruppe
WHERE GrAbfrage.Gruppe IS NULL AND Gruppen.ProjektID = 19 |
Vielen Dank schonmal für Eure Hilfestellungen und einen guten Rutsch ins neue Jahr.
Moderiert von
Martok: SQL-Tags hinzugefügt
Moderiert von
Martok: Code-Tags hinzugefügt