2015-06-16 67 views
0

EMPLOYEE表的多个列:集团通过在同一个表

╔═══════════════════════════════════════════════════╗ 
║ emp_id emp_position emp_start_date employer_id ║ 
╠═══════════════════════════════════════════════════╣ 
║ 1234 Associate  08/08/08  7657  ║ 
║ 1234 Associate  01/01/11  3345  ║ 
║ 1234 Manager   04/03/13  9483  ║ 
║ 1234 Manager   04/05/15  2345  ║ 
╚═══════════════════════════════════════════════════╝ 

如何我构建一个查询来获取每emp_role最早的日期和查询应该只返回谁已举办超过一个职位的员工。

选择smp.emp_id,smp.emp_position,从smp.cnt(选择emp_id,emp_position,COUNT(*),如通过从EMP_ID雇员组CNT,emp_position)SMP其中smp.cnt> 1

+1

选择e。[emp_position],MIN(如[emp_start_date])FROM员工E组BY即[emp_position] 非常基本的东西.... – Tom

+1

太快下来投票,嗯?我仍在编辑表格和问题的格式。 选择smp.emp_id,smp.emp_position,从smp.cnt( 选择emp_id,emp_position,由EMP_ID COUNT(*)作为CNT从 员工 组,emp_position)SMP其中smp.cnt> 1 – javadee

+2

@javadee添加查询也纳入问题中,而不是在评论中。 – Dijkgraaf

回答

3
select 
    emp_position, 
    min(emp_start_date) 
from 
    Employee 
group by 
    emp_position 
+1

我能得到的方法稍加修改的结果: 选择 EMP_ID, emp_position, 分钟(emp_start_date) 从 雇员 组由 emp_id为 emp_position 具有计数 计数(*)(*)> 1 – javadee

3

尝试此查询

SELECT emp_position, MIN(emp_start_date) 
FROM Employee 
GROUP BY emp_position