作者sheiswe (no matter)
看板Statistics
标题[问题] SAS sql组合计算问题:(
时间Tue Jun 9 14:16:48 2015
想要做到两个资料可以1.组合2.再做计算
data AA; (有x001-x004共16项)
Idy _name_ COL1
X001 X001 12000
X001 X002 0
X001 X003 100
X001 X004 100
X002 X001 5000
X002 X002 101
X002 X003 0
X002 X004 905
.
.
.
.
data BB;
Idy _name down
X001 X001 200
X002 X002 5905
X003 X003 92
X004 X004 3328
结果可以这样~
Idy _name_ COL1 tot qoo(col1/tot)
X001 X001 12000 200 0.0xx
X001 X002 0 200 0
X001 X003 100 200 0.5
X001 X004 100 200 0.5
X002 X001 5000 5905 .
X002 X002 101 5905 .
X002 X003 0 5905 .
X002 X004 905 5905 以
X003 X001 5000 95 此
X003 X002 101 95 类
X003 X003 0 95 推
X002 X004 905 95
X004 X001 5000 3328
X004 X002 101 3328
X004 X003 0 3328
X004 X004 905 3328
====我的程式如下=======
proc sql;
create table DDD as
select AA.idy, AA._name_, BB.idy, trans.col1,
case when AA.idy=BB.idy and AA.idy^=AA._name_ then down
end as tot
from AA, BB;
quit;
data DDD; set DDD;
qoo=col1/tot;
run;
========================
用sql写出来可以计算,但不知道为何数据一多~配对到的结果就不对了。
不知道是不是程式有问题?还是可以用其他方式?
无力...来求解~先谢谢^^
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.33.219
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Statistics/M.1433830610.A.325.html
1F:→ MOONY135: 感觉只是JOIN的方式有问题 06/10 12:56
2F:推 st410614: 只是要把bb的down加进aa吧,用merge就好了,merge by id 06/10 13:39
3F:→ st410614: y 06/10 13:39