2012-04-03 47 views
2

您好我有三个表,我想知道用的1000工资雇员已SQL计数功能

第一个SQL查询给了我已经收到1000的所有员工的姓名多少就业机会工作

SELECT distinct first_name 
FROM employee, job, link 
WHERE job.wage = 1000 
    AND job.job_id = link.job_id and employee.employee_id = link.employee_id; 

第二SQL查询让我对他们为1000

SELECT count(wage) 
FROM employee, job, link 
WHERE job.wage = 1000 
    AND job.job_id = link.job_id and employee.employee_id = link.employee_id; 

做我在想,如果有加盟两者的方式有多少工作的所有员工总数查询并为每个特定员工制作第二个?

回答

1

您可能需要通过这个关键字

SELECT count(wage), first_name 
FROM employee, job, link 
WHERE job.wage = 1000 
    AND job.job_id = link.job_id and employee.employee_id = link.employee_id; 
GROUP BY first_name 

缺点使用组,如果有不同的员工具有相同的FIRST_NAME它会考虑到相同的计数会。

1

像下面的东西应该工作,你不应该需要不同的first_name了。

select first_name, COUNT(wage) FROM employee, job, link WHERE job.wage = 1000 AND job.job_id = link.job_id and employee.employee_id = link.employee_id 
GROUP BY first_name 
1

我也建议改变你的隐加入到明确连接:

SELECT employee.employee_id, first_name, last_name, count(wage) as wage_count 
FROM 
    employee 
    JOIN link ON employee.employee_id = link.employee_id 
    JOIN job ON job.job_id = link.job_id 
WHERE job.wage = 1000 
GROUP BY employee.employee_id, first_name, last_name 
+0

+1使用正确的JOIN语法 – Taryn 2012-04-03 17:21:13