2017-07-15 61 views
-2

我是新来的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

请问我需要帮助,我的查询可能写得好多了,但最后我只想得到最后生效的日期记录,没有全部。

谢谢!

+1

见https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-一个非常简单的SQL查询 - 我们不需要看到这个Java的东西或任何连接。 – Strawberry

回答

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);