我是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 回答
您应该使用
group by
将所有付款emp_ID分组 .选择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