select a.EMPLOYEE_CODE,a.EMPLOYEE_NAME,b.department_code from DESK_EMPLOYEE,
(
select employee_code,department_code from members_of_department,
(
select max(update_time) newest
from members_of_department
group by employee_code
)
where update_time=newest
) b
where a.employee_code=b.employee_code;
(
select employee_code,department_code from members_of_department,
(
select max(update_time) newest
from members_of_department
group by employee_code
)
where update_time=newest
) b
where a.employee_code=b.employee_code;
上个贴少了个别名
而且这条记录重复了n次
in(select Max(desk_employee.update_time) from desk_employee group by department_code) group by desk_employee,members_of_department
(select distinct employee_code,FIRST_VALUE(department_code) OVER (PARTITION BY employee_code ORDER BY update_time DESC) department_code
from members_of_department) b
where a.employee_code = b.employee_code
就是有多个相同的update_time的时候,还是会取出来多个记录:(,不知道该如何解决。
我的sql语句如下:
select a.EMPLOYEE_CODE,a.EMPLOYEE_NAME,b.department_code from desk_employee a,
(select Max(members_of_department.LAST_UPDATE_DATETIME),department_code,employee_code
from members_of_department group by department_code,employee_code) b
where a.EMPLOYEE_CODE=b.EMPLOYEE_CODE