2017-07-15 166 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);