【发布时间】:2011-11-21 18:37:06
【问题描述】:
我有一张桌子
员工
emp_id, ~10 other fields
a1
b1
emp_type
emp_id, effective_date, employee_type
a1 2/1/2011 RS
a1 9/3/2011 TU
b1 3/2/2011 RS
我正在做这样的事情:
select emp_id, ~10 other fields, employee_type
from employee e
inner join emp_type et
on et.emp_id = e.emp_id
and effective_date = (select max(effective_date)
from emp_type et2
where et2.emp_id = et.emp_id)
这是最有效的方法吗?它运行速度不会太慢,但它是报告中非常常见的查询,我希望有最有效的方法。 emp_type 每个员工最多有 4-5 条记录,但通常只有一条。大约有20,000名员工。我见过一个交叉应用解决方案,但发现速度较慢。
【问题讨论】:
-
您使用的是什么 RDBMS/版本?
标签: sql sql-server-2008 performance