Hallo!
Leider fehlt mir der passende Suchbegriff, sonst hätte ich schon gegoogled.
Ich habe folgende Aufgabenstellung:
In einer Tabelle tblQuali sind verschiedene Qualifikationen von Personen hinterlegt.
Z.B.:
PersonID Quali
1 TrainerscheinA
2 TrainerscheinA
1 FS_PKW
2 FS_LKW
…
Nun möchte ich alle Personen ID haben, die z.B. sowohl TrainerscheinA UND den PKW Führerschein (FS_PKW) haben. In der Realität werden sogar n-viele Kriterien abgefragt.
Ich hätte mehrere Ansätze, wie man so was lösen könnte:
1. Zuerst eine Kreuztabelle und dann entsprechend auf dieser Tabelle abfragen.
2. Verschachtelte Query (Select * from tblQuali where (Quali = ‘TrainerscheinA’ AND personID in (select personID from tblQuali where Quali = ‘FS_PKW’))
3. Union Abfrage und dann die ausgeben, die n – mal vorkommen
Im Moment tendiere ich zu Variante 1. Aber vielleicht bin ich ja auf dem Holzweg und es gibt einen Königsweg, wie man so was macht (vor allem weniger komplex)
Vielen Dank auch für Hinweise, nach welchen Begriffen ich da mal googlen kann.
Marco
Leider fehlt mir der passende Suchbegriff, sonst hätte ich schon gegoogled.
Ich habe folgende Aufgabenstellung:
In einer Tabelle tblQuali sind verschiedene Qualifikationen von Personen hinterlegt.
Z.B.:
PersonID Quali
1 TrainerscheinA
2 TrainerscheinA
1 FS_PKW
2 FS_LKW
…
Nun möchte ich alle Personen ID haben, die z.B. sowohl TrainerscheinA UND den PKW Führerschein (FS_PKW) haben. In der Realität werden sogar n-viele Kriterien abgefragt.
Ich hätte mehrere Ansätze, wie man so was lösen könnte:
1. Zuerst eine Kreuztabelle und dann entsprechend auf dieser Tabelle abfragen.
2. Verschachtelte Query (Select * from tblQuali where (Quali = ‘TrainerscheinA’ AND personID in (select personID from tblQuali where Quali = ‘FS_PKW’))
3. Union Abfrage und dann die ausgeben, die n – mal vorkommen
Im Moment tendiere ich zu Variante 1. Aber vielleicht bin ich ja auf dem Holzweg und es gibt einen Königsweg, wie man so was macht (vor allem weniger komplex)
Vielen Dank auch für Hinweise, nach welchen Begriffen ich da mal googlen kann.
Marco
Comment