2014-10-17 85 views
0

我有兩個表如下。從左連接選擇最大值

Profile : ID 
Charac : ID, NAME, DATE 

通過以上表格,我試圖從得到NAME甜心,我們有最大日期

我試圖做的通過複製MySQL的回答像下面

proc sql; 
create table ggg as 
select profile.ID ,T2.NAME 
from Profile 
left join 
( select ID,max(DATE) as max_DATE 
    from EDW.CHARAC 
    group by ID 
) as T1 
on fff.ID = EDW.ID 
left join EDW.CHARAC as T2 
on T2.ID = T1.max_DATE 
order by profile.ID DESC; 
quit; 

錯誤

ERROR: Unresolved reference to table/correlation name EDW.

ERROR: Expression using equals (=) has components that are of different data types.

+0

'EDW.CHARAC'這應該是'EDW.CHARA'?另外,'EDW.ID'應該引用'Chara'的ID嗎? – Compass 2014-10-17 14:51:45

+0

@Compass對不起,對於第一個錯字。是的兩個表即Profile和CHARAC都有「ID」。 – LonelySoul 2014-10-17 14:55:27

回答

1

難道你打算

on T2.ID = T1.max_DATE 

這也許是錯誤 「是不同的數據類型的組件」 源

是:

on T2.ID = T1.ID and T2.DATE = T1.max_DATE 

是,是 - 加盟在DATE的最大ID?

1

不能使用EDW喜歡與PROC SQL聯接。你需要加入

on fff.ID=T1.ID 

至於數據類型,這可能是因爲EDW.ID是不確定的,因此在默認情況下的數值。