0

条件を使用して 2012 年から 2022 年までの Age 変数を作成したいのですが、YEAR(計算された td-1)、YEAR(計算された td)、YEAR(計算された td+1)、YEAR(計算された td +2) しかし、それは長いプロセスです。テーブル 2 に重複する年があります。ワンステップで行うのを手伝ってください。

サンプルコードは次のとおりです。

proc sql;

create table Forecast1(DROP=td) as

select T1.*

,date() as td

,case 
when (YEAR(calculated td))- year(T1.Engine)<=10 then '0-10'
when (YEAR(calculated td))- year(T1.Engine)<=20 then '10-20' 
when (YEAR(calculated td))- year(T1.Engine)<=35 then '20-35' 
else '35p' end as Age_2013 format=$char5.
from gopi1.FLEET_MASTER  T1   
left join gopi1.ANNUAL_FH_AVERAGE T2
on T1.Model=T2.Model and T1.Age_bracket=T2.Age_bracket 
4

1 に答える 1

1

SAS を使用している場合は、データ ステップでこれを行う必要があります。必要に応じて、ビューで実行してから、それを SQL に読み込むことができます。

data fleet_master_vw/view=fleet_master_vw;
set fleet_master;
array ageyr age_2012 - age_2022;
do _t = 1 to dim(ageyr);
  ageyr[_t] = (your age calculation);
end;
drop _t;
run;

proc sql;
 ... your sql stuff, using fleet_master_vw as your source dataset ...

あなたfleet_masterの年齢が含まれていると思います - 必要に応じて他のものに変更してください。

于 2013-09-11T15:46:27.987 に答える