作者hanjing (心宽念纯)
站内Statistics
标题Re: [问题] SAS proc sql的问题
时间Sat Mar 28 10:26:48 2009
昨天根据tew版友的指导
我顺利的取出想要的变数
但最後在merge时失败了
我的指令如下
proc sql;
create table A1 as
select var2,
var1
from A; quit;
proc sql;
create table B1 as
select var3,
var1
from B; quit;
proc sort data=A; by var1;
proc sort data=B; by var1;
data A1B1;
merge A B;
by var1;
run;
proc sort data=C; by var1;
data A1B1C;
merge A1B1 C;
by var1;
run;
我想做的事情是把A和B中的var1 var2 var3抽出来
再依据var1这个变数
merge
A1和 B1 两个表格
成为A1B1
到这个地方都ok
但最後要merge A1B1 和 C 时
就失败了
我的想法是 C 没有经过proc sql的程序
所以无法和经过proc sql程序的表格merge
於是我又做了一个步骤
proc sql;
create table C1 as
select *
from C;
quit;
但是
这个动作完全失败
一个变数都没有出来
想请问
如果我只想要把A表格的var1 var2 和 B表格的var1 var3抽出来
再以var1为对照标准把表格A和B的var2与var3丢进去C表格里面
那我怎麽做最快
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.78.46
1F:推 bugle:为啥不用 SQL 帮你 MERGE ??? 03/28 11:15
2F:→ bugle:另,可否用table1,table2,...重新改code? 你贴得眼花撩乱= = 03/28 11:16
※ 编辑: hanjing 来自: 140.115.78.46 (03/28 12:05)
3F:→ hanjing:sorry我重新编辑过了,希望比较容易看些 03/28 12:06
4F:→ hanjing:麻烦bugle大教一下用sql merge的指令,感谢感谢 03/28 12:07
5F:推 west1996:proc sql; 03/28 21:17
6F:→ west1996:create c as 03/28 21:17
7F:→ west1996:select coalesce(a.var1,b.var1) label='var1',a.var2, 03/28 21:18
8F:→ west1996:from a full join b 03/28 21:18
9F:→ west1996:on a.var1=b.var1; 03/28 21:18
10F:→ west1996:quit; 03/28 21:19