Meine Lieben,
Folgende Abfrage muss ich so ändern, dass ich
ausschließlich JOINs verwenden kann. Wenn das mit der Änderung nicht so klappt, kann ich auch die Datenstruktur ändern, damit ich das hinbekomm.
Etwas vereinfacht dargestellt, sehen meine Tabellen so aus
- Baugruppen : TBLBG
- pro Baugruppe Einträge in der Stückliste : TBLPLMSL (das Feld "Bearbeitungsart" muss hier näher betrachtet werden)
- Gruppen von Bearbeitungsarten : tblfeidxgrp
- Bearbeitungsarten innerhalb der Gruppen : tblfeidxgrpdet
Daten, die die Abfrage liefern soll:
Es sollen alle Einträge aus der Stückliste angezeigt werden, bei denen die Bearbeitungsart weder in der Bearbeitungsgruppe "SMD B-Seite" noch in der Gruppe "SMD L-Seite" zu finden ist.
EDIT:
Eine Bearbeitungsart kann mehreren Gruppen zugeordnet sein.
Jedes Teil hat nur eine Bearbeitungsart.
In der Tabelle tblfeidxgrpdet sind nicht alle Bearbeitungsarten, die es in der Stückliste geben kann definiert.
Eine extra Gruppe "Nicht SMD" mit allen sonstigen Bearbeitungsarten kann ich nicht in Betracht ziehen.
Hier meine jetzige Abfrage mit SubSelect (die durch JOINs ersetzt werden muss):
SQL-Code:
SELECT *
FROM TBLBG, TBLPLMSL
WHERE TBLPLMSL.BGID = TBLBG.BGID
AND TBLPLMSL.Bearbeitungsart NOT IN
(SELECT tblfeidxgrpdet.FEIndex FROM tblfeidxgrpdet
, tblfeidxgrp tblfeidxgrp
WHERE tblfeidxgrp.FEIDXGRPID = tblfeidxgrpdet.FEIDXGRPID
AND tblfeidxgrp.Gruppenname IN ('SMD B-Seite','SMD L-Seite')
)