由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 关于proc sql left join的一个问题
相关主题
在SAS中不用proc sql的情况下实现inequality joinSAS Code 求助,如何把在另一个dataset的id找出来
问个效率问题 SQL vs data step,大数据量一个实际应用的SAS问题
请教一个用SAS作DATA MERGE的问题关于SAS interview
贡献SAS Programmer 面试问题并求答案[合集] way to do exclusive outer join by proc sql
which route in SAS is faster?请教一个SAS问题
为什么合并这两个数据不能用sas merge 而要用SAS SQL一个简单的SAS 问题
问个proc merge问题。请教sas中两个数据有条件地合并问题
比较dataset merge and proc sql 中的 outer join 的贴子SAS Question
相关话题的讨论汇总
话题: left话题: join话题: proc话题: records话题: data
进入Statistics版参与讨论
1 (共1页)
j******n
发帖数: 2206
1
我要用a left join b,under some conditions.
但是我也想知道b中哪些 Records没有被select上。有什么办法把这些没选上的records
output到一个dataset里么?
谢谢
g*********r
发帖数: 2847
2
not familiar with SAS. but you can do b left join a so that you get those
not selected when doing a left join b (fields from a will be null)
j******n
发帖数: 2206
3
a very very very good trick. I will try this.thank you.
at the same time, i still hope someone can give me an answer in SAS. I mean
still using a left join b, but get two different datasets.(one is the merged
data, another one are the records from b not selected.)

【在 g*********r 的大作中提到】
: not familiar with SAS. but you can do b left join a so that you get those
: not selected when doing a left join b (fields from a will be null)

a*****3
发帖数: 601
4
说穿了不就是'在b 不在a' 么?
就按givemeoffer那么做就行.
或者先用 a left b, 得到b里面被拣选的,
ie, 然后用用minus搞, 得到找不到对象的,
不过也没看出好在哪里.

records

【在 j******n 的大作中提到】
: 我要用a left join b,under some conditions.
: 但是我也想知道b中哪些 Records没有被select上。有什么办法把这些没选上的records
: output到一个dataset里么?
: 谢谢

j******n
发帖数: 2206
5
恩,不过我这些条件有些复杂,不知道能不能这么搞
on a.id=b.id and a.provider=b.provider and a.begdate<=b.admsn_dt and a.
enddate>=b.dschrgdt;

【在 a*****3 的大作中提到】
: 说穿了不就是'在b 不在a' 么?
: 就按givemeoffer那么做就行.
: 或者先用 a left b, 得到b里面被拣选的,
: ie, 然后用用minus搞, 得到找不到对象的,
: 不过也没看出好在哪里.
:
: records

a*****3
发帖数: 601
6
这不挺好嘛, 再不放心就设计个testing dataset 向老板证明一下.

【在 j******n 的大作中提到】
: 恩,不过我这些条件有些复杂,不知道能不能这么搞
: on a.id=b.id and a.provider=b.provider and a.begdate<=b.admsn_dt and a.
: enddate>=b.dschrgdt;

g****8
发帖数: 2828
7
how about just using data step with IN?
But not sure about what kind of conditions you need to meet.

records

【在 j******n 的大作中提到】
: 我要用a left join b,under some conditions.
: 但是我也想知道b中哪些 Records没有被select上。有什么办法把这些没选上的records
: output到一个dataset里么?
: 谢谢

a*****3
发帖数: 601
8
你没好好看题,人家非要用 a left b, 选出在b不在a的,
所以我才建议使用第二步 minus, 在第一步之后.

【在 g****8 的大作中提到】
: how about just using data step with IN?
: But not sure about what kind of conditions you need to meet.
:
: records

g*********r
发帖数: 2847
9

yes you can.
seems you are working in health care fields

【在 j******n 的大作中提到】
: 恩,不过我这些条件有些复杂,不知道能不能这么搞
: on a.id=b.id and a.provider=b.provider and a.begdate<=b.admsn_dt and a.
: enddate>=b.dschrgdt;

j******n
发帖数: 2206
10
yes, i do work in health care field.
claims data....

【在 g*********r 的大作中提到】
:
: yes you can.
: seems you are working in health care fields

相关主题
为什么合并这两个数据不能用sas merge 而要用SAS SQLSAS Code 求助,如何把在另一个dataset的id找出来
问个proc merge问题。一个实际应用的SAS问题
比较dataset merge and proc sql 中的 outer join 的贴子关于SAS interview
进入Statistics版参与讨论
j******n
发帖数: 2206
11
汗,不一定非要用a left join b啊。。。merge也可以,只是好久没用过merge了。明
天试试

【在 a*****3 的大作中提到】
: 你没好好看题,人家非要用 a left b, 选出在b不在a的,
: 所以我才建议使用第二步 minus, 在第一步之后.

a*****3
发帖数: 601
12
忘了考虑性别了,
女的说‘不要’的时候,其实说的是‘要’,
女的说‘我要’的时候, 其实说的是‘我非要’ .

【在 j******n 的大作中提到】
: 汗,不一定非要用a left join b啊。。。merge也可以,只是好久没用过merge了。明
: 天试试

j******n
发帖数: 2206
13
厉害

【在 a*****3 的大作中提到】
: 忘了考虑性别了,
: 女的说‘不要’的时候,其实说的是‘要’,
: 女的说‘我要’的时候, 其实说的是‘我非要’ .

g****8
发帖数: 2828
14
好吧,我理解错误了

【在 a*****3 的大作中提到】
: 你没好好看题,人家非要用 a left b, 选出在b不在a的,
: 所以我才建议使用第二步 minus, 在第一步之后.

g****8
发帖数: 2828
15
不知道下面这个行不行,没有test过。而且如果你的b里面variable多的话,keep那里
要写很多的话,就没有sql的方法efficient了。
如果a里面variable少,改成drop也行。
proc sort data=a; by id provider;run;
proc sort data=b; by id provider;run;
DATA test;
Merge a (in=t1) b(in=t2);
by id provider;
if (t1=1 and t2=0 ) then delete;
if( t1=1 and t2=1 and begdate<=admsn_dt and enddate>=dschrgdt ) then
delete;
keep ;
run;
proc sort data=test nodupkey;by ***; run;
g****8
发帖数: 2828
16
忘记了,楼主还要merge后的data,应该把那个delete改成一个tag。
明天帮你想呀
a*****9
发帖数: 1315
17
可以用
proc sql ;
select *
from a left join b
on ( conditions 之类 eg,a.id=b.id )

quit;
另外还有一种 可以考虑试试:
proc sql ;
select *
from a
except all
select *
from b
;
quit;
just 2 cents , 莫见笑 ,LZ试试, 不知道你的具体的数据, 见谅呀,
1 (共1页)
进入Statistics版参与讨论
相关主题
SAS Questionwhich route in SAS is faster?
Dataset merge的一个问题为什么合并这两个数据不能用sas merge 而要用SAS SQL
a sas merge question问个proc merge问题。
求一段SAS code比较dataset merge and proc sql 中的 outer join 的贴子
在SAS中不用proc sql的情况下实现inequality joinSAS Code 求助,如何把在另一个dataset的id找出来
问个效率问题 SQL vs data step,大数据量一个实际应用的SAS问题
请教一个用SAS作DATA MERGE的问题关于SAS interview
贡献SAS Programmer 面试问题并求答案[合集] way to do exclusive outer join by proc sql
相关话题的讨论汇总
话题: left话题: join话题: proc话题: records话题: data