我是sql的新手,我正在运行下面的查询
var Pprofile = "SELECT A.POLICY_PROFILE as POLICY_PROFILE,A.STATUS_CODE1,A.EFF_DT, A.END_EFF_DT,E.OTHER_STRING10,E.DISPLAY_EMPLOYEE FROM EMPLOYEE E , ASGNMT A " +
"WHERE E.DISPLAY_EMPLOYEE = A.LD1 AND " +
"POLICY_PROFILE = 'LOCAL_51' AND A.STATUS_CODE1 = 'A' " +
" ORDER BY E.DISPLAY_EMPLOYEE, A.EFF_DT ASC";
问题在于返回所有员工的所有不同“生效日期记录”,如图所示。我只想获得为每个不同用户创建的最后生效日期记录。 query result
我需要帮助我的查询可能写得更好,但最后我想得到最后一个生效日期记录,不是全部。
谢谢!
答案 0 :(得分:0)
像这样的东西
drop table if exists t;
create table t(id int, eff_dt date);
insert into t values
(1,'2017-01-01'),(1,'2017-01-01'),(1,'2017-02-01'),
(2,'2017-01-01');
select t.*
from t
where t.eff_dt = (select max(t1.eff_dt) from t t1 where t1.id = t.id);