2017-08-22 7 views
0

J'ai un problème avec un exercice SQL: Dans quels endroits, examinateur avec le nom de famille «Muryjas» examiné plus de 2 étudiants? Nous avons 3 tables: - Places (Id_place, place_name) - Examens (Id_examiner, Id_student, Id_place) - Examiners (Id_examiner, Examiner_name)SQL - Sous-requête/JOINS/Avoir - mauvais enregistrement

SELECT p.Place_name 
FROM Places p 
INNER JOIN Egzams e ON e.Id_place = p.Id_place 
INNER JOIN Egzaminers ee ON ee.Id_egzaminer = e.Id_egzaminer 
WHERE ee.name = "Muryjas" 
GROUP BY p.Nazwa_o 
HAVING COUNT(e.Id_student) > 2 

Résultat attendu: devrait imprimer 2 enregistrements Résultat réel: J'ai 3 enregistrements, on a tort.

Dois-je utiliser la sous-requête? Mais je n'ai aucune idée de comment implémenter cette fonctionnalité. Aucune suggestion?

+0

HAVING COUNT (DISTINCT de e.Id_student) – Serg

+0

Aie. C'est une bonne réponse. Je ne sais pas pourquoi je n'ai pas vérifié les identifiants des étudiants :) – KobSen

Répondre

0

HAVING COUNT (DISTINCT de e.Id_student)