Я хочу написать несколько операторов case и создать несколько новых переменных (здесь новая переменная - dob_match), создаваемых в том же коде proc sql. Можно ли это сделать?
В противном случае, мне нужно написать несколько таких сегментов кода sql proc, а затем соединить эти таблицы вместе. Тем не менее, огромные таблицы объединяются, 4-5 огромных таблиц сталкиваются с проблемами пространства и времени на моем компьютере.
Может кто-нибудь предложить какой-нибудь эффективный способ сделать это в SAS (каждая таблица имеет около 200К строк).
Спасибо.
В основном, я хочу сделать -
Proc sql
Создать совпадение таблицы как
(
Выберите corc. , pdd. ,
Case
Когда тогда еще <> заканчивается как NEW_VARIABLE 1
Case
Когда тогда еще <> заканчивается как NEW_VARIABLE 2
,
,
,
случай
Когда тогда еще <> заканчивается как NEW_VARIABLE 6
от newlink.CORC_uprob as corc
полный JOIN WORK.unmatchpdd как pdd
на
corc.hospitalid2 = pdd.oshpdid2
);
Quit;
Мой код SAS-
proc sql;
create
table DOB_match as
(
select corc.Medrecn as MRN, pdd.SSN as pSSN, corc.birthdate as corcbday, pdd.bthdate as pddbday, corc.newIDCORC as newIDCORC, pdd.newIDPDD as newIDPDD,
corc.hospitalid2 as corcHosp, pdd.oshpdid2 as pddhosp,
corc.dischargedate as dsdt_corc, pdd.dschdate as dsdt_pdd, corc.Surgdate as Surgdt_corc, pdd.PDDCABGSurgDt as Surgdt_pdd,
corc.*, pdd.*,
case
when corc.day = pdd.day and corc.month = pdd.month and corc.year = pdd.year then 100
else -10 end as dob_match
from newlink.CORC_uprob as corc
full JOIN WORK.unmatchpdd as pdd
on
corc.hospitalid2 = pdd.oshpdid2 );
quit;