在SAS中使用proc SQL返回最近的值
我希望根据字母类型为P29的日期返回字母来源为CCMA的最新结果 基本上,我只需要知道最后一封CCMA信函的日期,即有P29信函的账户。CCMA信函可以是任何日期,只要是最近的,但P29必须在特定的时间段内 到目前为止,我的代码是:在SAS中使用proc SQL返回最近的值,sql,sas,Sql,Sas,我希望根据字母类型为P29的日期返回字母来源为CCMA的最新结果 基本上,我只需要知道最后一封CCMA信函的日期,即有P29信函的账户。CCMA信函可以是任何日期,只要是最近的,但P29必须在特定的时间段内 到目前为止,我的代码是: proc sql; select distinct account_no as account_no ,letter_date as letter_date ,letter_type as letter_t
proc sql;
select distinct
account_no as account_no
,letter_date as letter_date
,letter_type as letter_type
,source as letter_source
from uulster.perm_aura_letters
where letter_type="P29"
and letter_date >= '01jul2015'd and letter_date <= '09jul2015'd
order by letter_date, letter_type;
quit;
请您帮忙好吗?我想您可以使用两个烫发字母表来完成这项工作。这并不漂亮,但我现在还没有想出一个更有效的方法
select distinct
account_no as account_no
,letter_date as letter_date
,letter_type as letter_type
,source as letter_source
from uulster.perm_aura_letters p29
join uulster.perm_aura_letters ccma on p29.account_no = ccma.account_no
where p29.letter_type="P29"
and ccma.letter_type = "CCMA"
and p29.letter_date >= '01jul2015'd and p29.letter_date <= '09jul2015'd
and ccma.letterdate = (subselect max date for account and ccma)
order by p29.letter_date, p.29.letter_type
)
proc sql;
select * from (select distinct
account_no as account_no
,letter_date as letter_date
,letter_type as letter_type
,source as letter_source
from uulster.perm_aura_letters
where letter_type="P29"
and letter_source contains "CCMA"
and letter_date >= '01jul2015'd and letter_date <= '09jul2015'd)
having letter_date=max(letter_date)
order by letter_date, letter_type
;
quit;