Используя следующую схему:
Supplier (sid, name, status, city)
Part (pid, name, color, weight, city)
Project (jid, name, city)
Supplies (sid, pid, jid**, quantity)
-
Получить номера и имена поставщиков для поставщиков комплектующих, поставляемых по меньшей мере в двух разных проектах.
-
Получить номера поставщиков и имена поставщиков одной и той же части по меньшей мере в двух разных проектах.
Это были мои ответы:
1.
SELECT s.sid, s.name
FROM Supplier s, Supplies su, Project pr
WHERE s.sid = su.sid AND su.jid = pr.jid
GROUP BY s.sid, s.name
HAVING COUNT (DISTINCT pr.jid) >= 2
2.
SELECT s.sid, s.name
FROM Suppliers s, Supplies su, Project pr, Part p
WHERE s.sid = su.sid AND su.pid = p.pid AND su.jid = pr.jid
GROUP BY s.sid, s.name
HAVING COUNT (DISTINCT pr.jid)>=2
Может ли кто-нибудь подтвердить, правильно ли я это написал? Я немного смущен относительно того, как работает функция Group By and Have