首页 > 解决方案 > 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;

感谢是否有人可以在这方面为我提供帮助。谢谢你。:)

标签: sqloracle

解决方案


您应该使用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;

推荐阅读