sql - SQL 显示一张表中的数据并计算另一张表中的结果
问题描述
我是 SQL 的初学者。我的作业有问题。
我需要编写一个显示以下信息的 Select 语句。- 员工姓名 (Ename) - 员工 IC 编号 (EIC_NO) - 付款记录总数 - 仅显示超过 100 条付款记录的员工的上述信息
我认为问题在于我需要呈现的数据属于 2 个单独的表。这些表的结构如下:
表 1 Name Employee 列名: Employee_ID(主键)、Ename(辅助键)、EIC。
表2 Name Payment 列名: 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;
感谢是否有人可以在这方面为我提供帮助。谢谢你。:)
解决方案
您应该使用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;