SQL Abfrage

Hallo,
ich habe eine Tabelle mit Personen und eine mit
Haustieren (Hund, Katze, Vogel, Kaninchen, Pferd usw.)
Da eine Person mehrere Tiere haben kann, werden in einer
dritten Tabelle die Tiere einer Person zugewiesen.
Die dritte Tabelle hat praktisch nur zwei Zeilen, den Primärschlüssel
der Personen und den der Tiere.
Wie finde ich jetzt alle Personen die z.B. einen Hund einen Vogel und ein Pferd haben, aber nicht die bei denen nur ein Tier zutrifft ?

Vielen Dank
und
Viele Grüße
mig

Hallo,

das geht ganz einfach mit Gruppenfunktionen:

SELECT personID from persoHatTier
WHERE 1=1
HAVING count(\*) \> 1
GROUP BY personID
ORDER BY personID;

Gruß

Peter

WHERE

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,
Danke erst mal für die Antwort.

SELECT personID from persoHatTier
WHERE 1=1
HAVING count(*) > 1
GROUP BY personID
ORDER BY personID;

So richtig will es aber nicht gehen.
Ich muss doch irgendwo noch die tierID unterbrigen,
sowas wie ‚WHERE tierID = 2 AND 4‘ oder lieg ich völlig daneben ?
Wenn ich das aber so mache bekomme ich eine Fehlermeldung.

Gruß
mig

Hallo,

so bekommst Du alle, die mehr als ein Tier, unabhängig welche, bekommen.

Wenn Du alle suchst, die TierID = 2 und tierID = 4 haben (und vielleicht noch einige mehr, aber mindestens beide):

SELECT personID 
FROM personHatTier
WHERE tierID IN (2, 4)
HAVING count(\*) \> 1
GROUP BY personID
ORDER BY personID;

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Wenn Du alle suchst, die TierID = 2 und tierID = 4 haben (und
vielleicht noch einige mehr, aber mindestens beide):

Das kommt der sache schon näher, es sollen aber nur die Personen mit
den ausgewählten zwei Tieren angezeigt werden. Beim Nächsten mal nur die mit 3 Tieren usw.
Habe nach weiteren Recherchen mitgekriegt dass diese Dynamik in SQL
nicht so einfach zu realisieren ist, wie ich in meiner Unerfahrenheit dachte.
Da das ganze aber in Access stattfindet, bleibt noch die Möglichkeit das ganze mit Unterstützung von VBA in mehreren Schritten anzugehen.

Vielen Dank
und
Viele Grüße
mig