楼主: 烈女乖乖
3247 10

请教一个简单的程序,关于sql不太明白,so。。。 [推广有奖]

  • 0关注
  • 0粉丝

本科生

39%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
917 点
帖子
78
精华
0
在线时间
55 小时
注册时间
2010-6-23
最后登录
2013-5-25

楼主
烈女乖乖 发表于 2011-3-29 15:15:13 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
各位高手们好,我有一个简单的程序需要请教,就是比如我有一个sheet里面的数据如下:

   code1      r1    code2      r2

    101        34       101       68
    102        33       102       67
    104        37       103       65
    106        35       104       66
    107       30        105       62
    109       49        106       59
                              107       55
                              108       68
                              109       70     ...
我需要计算当code1=code2时,r1/r2的值,然后以code1和r1/r2的值再做一张表。
就是相当于code2中的编码多于code1中的,要是相同我就直接在excel里面计算了,但是我的数据非常大,我无法手动剔除code2中多余的然后才来计算,所以我想到SAS应该可以解决,,,希望各位高手帮帮忙啊,,,我SAS才入门,,实在不知道从何下手!!!


谢谢谢谢了!!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:一个简单的程序 关于SQL sql EXCEL sheet 程序 sql

回帖推荐

本帖被以下文库推荐

沙发
baoaibaobao 发表于 2011-3-29 15:58:38
  1. proc import datafile='e:\工作文档\aa.xls'
  2.         out=aa
  3.         dbms=excel
  4.         replace;
  5.         getnames=yes;
  6. run;

  7. proc sql noprint;
  8. create table zachary as
  9. select a.code1,a.r1/b.r2 as ratio from
  10. (select code1,r1 from aa where code1 ne . and r1 ne .) a join  
  11. (select code2,r2 from aa where code2 ne . and r2 ne .) b on a.code1=b.code2;
  12. quit;
复制代码
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

藤椅
yuanqiu8866 发表于 2011-3-29 16:19:57
先导入数据,命名为a
data b;
set a;
run;

proc sql noprint;
create table result as select a.r1/b.r2 as numb, a.code1 from a, b
where a.code1=b.code2 and a.code1>. and b.code2>.  and b.r2>.;
quit;
或者其实你用merge也可以啊

板凳
烈女乖乖 发表于 2011-3-29 17:14:56
谢谢谢谢!
非常感谢!!!



2# baoaibaobao

报纸
烈女乖乖 发表于 2011-3-29 17:37:48
谢谢谢谢您啊


非常感谢!!!


3# yuanqiu8866

地板
tj0412ymy 发表于 2011-3-29 22:09:42
1# 烈女乖乖
在EXCEL中调用VLOOKUP函数,可以很方便地解决这个问题!

7
烈女乖乖 发表于 2011-4-6 20:03:23
您好!!请问您说的这种方法要怎么使用呢?vlookup使用的特别少啊,自己试了下不会用啊!
能否举个例子啊!谢谢了!




6# tj0412ymy

8
sas_user 发表于 2011-4-8 11:27:39
code1r1code2r2matchrow#indexresult
10134101681MATCH(A2,C2:C10)2ROW()+MATCH(A2,C2:C10)-168INDEX(C1:D10,G2,2)0.5
10233102671 3 67 0.492537313
10437103652 5 66 0.560606061
10635104663 7 59 0.593220339
10730105623 8 55 0.545454545
10949106594 10 70 0.7
10755
10868
10970


分4部:1.match--找到code2中的code1,1代表结果在同一行,2代表加一行,以此类推
              2.找到code1在code2中的行号,
              3. 找到code2中code1的值
              4. 得结果
哪位高手有更简单的办法?分享一下?

9
guanglei 发表于 2011-5-4 21:04:05
如果数据小于65000条,直接在Excel2003版本里做vlookup里面做了就好了呀。

大于65000条的话,Excel2007及以上版本也可以实现。用Excel最简单, SAS里面proc sql应该可以实现吧。
三人行,必有我师焉;择其善者而从之,其不善者而改之

10
fengzifz 发表于 2011-5-5 00:08:59
高手如云,过来学习

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 11:18