Неверные записи из SQL-запроса - PullRequest
1 голос
/ 11 марта 2019

Поэтому я пытаюсь перечислить местоположения отделов, названия проектов, связанных с каждым отделом, и количество сотрудников, работающих над каждым проектом.

Существует таблица DeptLocations (Атрибуты: Dnum, DLoc)

Таблица проекта (Атрибуты: PName, Pnum, PLoc, DNum)

Таблица сотрудников (Атрибуты: FNAME, M, LNAME, SSN, BDATE, ADDRESS, S, SALARY, SUPERSSN, DNO)

И таблица Works_On (Атрибуты: ESSN, PNO, HOURS).

Это мой SQL-запрос:

select DeptLocations.DLocation, Project.PName, count(ESSN) 

from Works_On, DeptLocations, Project, Department 

where DeptLocations.DLocation = Project.PLocation and Project.PNumber = Works_On.PNo

По какой-то причине он дает только 1 запись, когда явно должно быть намного больше.Любая помощь будет потрясающей.

1 Ответ

0 голосов
/ 11 марта 2019

Вам необходимо добавить предложение group by - поскольку вы использовали агрегированную функцию:

select 
  DeptLocations.DLocation, 
  Project.PName, 
  count(ESSN) 
from 
  Works_On 
  inner join Project on Project.PNumber = Works_On.PNo 
  inner join DeptLocations on DeptLocations.DLocation = Project.PLocation 
group by 
  DeptLocations.DLocation, Project.PName

Примечание: лучше использовать явное join вместо запятой join.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...