从左连接中选择最大值

时间:2014-10-17 14:48:24

标签: sas max left-join proc-sql

我有两张桌子如下。

Profile : ID
Charac : ID, NAME, DATE

根据上表,我正在尝试从 Chara 获取 NAME ,其中最大 日期

我正在尝试通过复制mysql的答案来加入 proc sql ,如下所示

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;

错误

  

错误:未解析对表/相关名称EDW的引用。

     

错误:使用equals(=)的表达式具有不同数据类型的组件。

2 个答案:

答案 0 :(得分:1)

你不能那样使用EDW。你需要加入

on fff.ID=T1.ID

就数据类型而言,可能是因为EDW.ID未定义,因此默认为数字。

答案 1 :(得分:1)

可能是你想要的吗

on T2.ID = T1.max_DATE

可能是"具有不同数据类型的组件的来源"错误

是:

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

是 - 在最大DATE加入ID?