首页 文章

SQL显示来自一个表的数据并计算另一个表的结果

提问于
浏览
0

我是SQL的初学者 . 我的任务有问题 .

我需要编写一个显示以下信息的Select语句 . - 员工姓名(Ename) - 员工IC号码(EIC_NO) - 支付记录总数 - 仅显示> 100支付记录的员工的上述信息

我认为问题是我需要提供的数据属于2个单独的表 . 表格结构如下:

Table 1 Name 员工 Column names: Employee_ID(主键),Ename(辅助键),EIC .

Table 2 Name 付款 Column names: 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 回答

  • 1

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

    选择e.employee_id AS ID,e.ename AS Name,COUNT(p.employee_id)AS TotalPaymentRecs

    从员工作为e INNER JOIN付款为p ON e.employee_id = p.employee_id

    GROUP BY e.employee_id,e.ename

    拥有TotalPaymentRecs> 100

  • -1
    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
    

相关问题