SQL Отображение данных из одной таблицы и подсчет результатов из другой таблицы. - PullRequest
0 голосов
/ 07 ноября 2018

Я новичок в SQL. У меня проблемы с моим заданием.

Мне нужно написать оператор Select, который отображает следующую информацию. - Имя сотрудника (Ename) - Номер IC сотрудника (EIC_NO) - Общее количество записей об оплате - Отображать вышеуказанную информацию только для сотрудников с> 100 платежными записями

Мне кажется, проблема в том, что данные, которые мне нужно представить, принадлежат к двум отдельным таблицам. Таблицы структурированы следующим образом:

Таблица 1 Имя Работник Имена столбцов: Employee_ID (первичный ключ), Ename (вторичный ключ), EIC.

Таблица 2 Имя Оплата Имена столбцов: PYMT_ID (первичный ключ), PYMT_Timestamp, PYMT_method, booking_id, Emp_ID (внешний ключ к таблице Employee, такой же как Employee_ID).

МОЙ код указан ниже. Но это не работает.

SELECT e.employee_id, e.ename, COUNT(p.emp_ID=e.employee_id)
FROM employee e, payment p
HAVING COUNT(p.emp_ID=e.employee_id) >100;

Благодарю, если кто-нибудь может мне помочь в этом. Спасибо. :)

Ответы [ 3 ]

0 голосов
/ 07 ноября 2018

Выберите e.employee_id AS ID, e.ename AS Name, COUNT (p.employee_id) AS TotalPaymentRecs

ОТ сотрудников как ВНУТРЕННЕГО СОЕДИНЕНИЯ Платежи как p ВКЛ e.employee_id = p.employee_id

GROUP BY e.employee_id, e.ename

Имея TotalPaymentRecs> 100

0 голосов
/ 07 ноября 2018
SELECT e.employee_Id, e.ename, COUNT(p.emp_id)
From Employee as e
INNER JOIN Payement as p
ON e.employee_id = p.emp_id
GROUP BY e.employee_id, e.ename, p.emp_id
HAVING COUNT(p.emp_id) > 100
0 голосов
/ 07 ноября 2018

Вы должны использовать group by для группировки всех платежей emp_ID.

  select p.emp_ID, e.ename, COUNT(*)
    from employee e, payment p
   where p.emp_ID=e.employee_id
group by p.emp_ID, e.ename
  having count(*) > 100;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...