Я пытаюсь объединить 3 таблицы, чтобы включить только тех сотрудников, которым назначено более одного назначения.Благодаря устранению неполадок я обнаружил, что мой запрос работает, пока я не добавлю свою третью таблицу.В частности, пока я не добавлю столбцы третьей таблицы в группу по.Мне нужно добавить третью таблицу, так как она включает дату начала и окончания проектов.
Я занимаюсь этим уже несколько дней.Я попытался обойти string_agg, используя столбцы из третьей таблицы в группе, но обнаружил, что он не поддерживается в программе, которую мы должны использовать.Я пробовал разные объединения, разные подсчеты, используя переменные.Я попытался объединить таблицы в различных комбинациях и впоследствии работал с другими ошибками.Я пытался сделать вложенные операторы select.
На данный момент я потерял счет.Я начал с декартового произведения и теперь понял, что, по-моему, проблема где-то в группировке третьей таблицы (проектов).
CREATE VIEW Assignments AS
SELECT a.EmpIDNumber,
COUNT(*) AS Frequency,
e.FirstName,
e.LastName,
a.PositionOnProject,
P.AssignedToProject AS ProjectName,
P.ProjectBeginDate AS StartDate,
P.FinishOnProject AS End_Date
FROM Assignments a
INNER JOIN Employees e ON a.EmpIDNumber = e.EmpIDNumber
INNER JOIN Projects p ON a.projectID = p.ProjectID
GROUP BY e.FirstName,
E.LastName,
a.PositionOnProject,
a.EmpIDNumber,
p.AssignedToProject,
p.ProjectBeginDate,
p.FinishOnProject
HAVING COUNT(*) > 1;
То есть я не получаю никаких результатов.Просто пустые заголовки.Удаляя третью таблицу (проекты) из списка выбора и группы, я получаю ожидаемые результаты, показывая тех сотрудников, которые назначены для более чем одного проекта.
Я знаю, что делаю что-то не так, и я открыт и готовчтобы узнать, что это такое.Любая помощь в этом приветствуется.