Извинения, я надеюсь, что я поставил это в нужное место, но у меня есть несколько вопросов по моей базе данных, которые я не могу понять, почему мои запросы не работают.Oracle SQL Query 2
Моя база данных отношений Схема выглядит следующим образом:
DEPARTMENT(deptnum, descrip, instname, deptname, state, postcode)
ACADEMIC(acnum, deptnum*, famname, givename, initials, title)
PAPER(panum, d.)
AUTHOR(panum*, acnum*)
FIELD(fieldnum, id, title)
INTEREST(fieldnum*, acnum*, descrip)
1) Мне нужно найти, если есть какие-либо больше ученых, которые написали менее 20 работ. Мне нужно указать acnum, title, famname, givename и количество написанных им документов. Смотрите мою попытку ниже:
SELECT a.acnum, a.title, a.famname, a.givename, count(p.panum)
FROM ACADEMIC a
INNER JOIN PAPER p
INNER JOIN AUTHOR au ON a.acnum = au.acnum and au.panum = p.panum
GROUP BY a.ACNUM, a.title, a.famname, a.givename
HAVING COUNT(p.panum) < 20;
2) Мне также нужно найти отделы с наибольшим количеством ученых и распечатать их столбец DEPTNUM DEPTNAME и InstName, но им получает ошибку синтаксиса. См. Мою попытку:
SELECT deptnum, deptname, instname, count(acnum)
FROM department, academic,
WHERE academic.deptnum = department.deptnum
GROUP BY deptnum
HAVING MAX(count(acnum));
Если я правильно понимаю вашу схему правильно, не должно быть никаких дубликатов в таблица 'author' (конкретный академический должен" t быть показан как автор конкретной статьи более одного раза). Если это так, в первом запросе вам нужно только одно соединение, между «академическим» и «авторским» - вам не нужно присоединяться к таблице «paper». – mathguy