Hallo zusammen,
ich habe eine SQL Problemstellung, bei der ich einfach auf keinen grünen Zweig komme. Ich habe zwei Tabellen, die so aussehen:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
Tabelle 1:
Datensatz Mermal Ausprägung
0001 Lenkrad Leder
0002 Schaltkn. Leder
Tabelle 2
Nr. Merkmal Ausprägung
A001 Lenkrad Plastik
A001 Schhaltkn. Leder
A001 Armelhne Ja
A002 Lenkrad Plastik
A002 Schhaltkn. Leder
A002 Armelhne Ja
A003 Lenkrad Leder
A003 Armelhne Nein
|
Das Ergebnis solle die Nr. der Tabelle 2 sein, deren Merkmale und Ausprägungen der Tabelle 1 entsprechen. A001 wird verworfen, da das Merkmal "Lenkrad" zwar vorhanden ist, allerdings in einer falschen Ausprägung. A002 ist ein gültiges Ergebnis, da beide Merkmale in der korrekten Ausprägung vorhanden sind. A003 wird verworfen, da das Mermal "Schaltkn." fehlt.
Mein erster Ansatz war...
|
MySQL-Abfrage(n)
|
1
2
3
4
5
6
|
SELECT [Tabelle 2].Nr_, COUNT([Tabelle 2].Nr_)
FROM [Tabelle 1] INNER JOIN
[Tabelle 2] ON [Tabelle 1].[Merkmal] = [Tabelle 2].[Merkmal] AND
[Tabelle 1].[Ausprägung] = [Tabelle 2].[Ausprägung]
GROUP BY [Tabelle 2].Nr_
HAVING COUNT([Tabelle 2].Nr_) = COUNT([Tabelle 1].[Datensatz])
|
...aber damit komme ich nicht weiter.
Kann mir einer von euch dabei helfen? DB ist MS SQL.