SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 620|回复: 2
打印 上一主题 下一主题

请大家帮帮忙,初学者,谢谢了,在线等!

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-1-4 14:17:15 | 只看该作者

请大家帮帮忙,初学者,谢谢了,在线等!

例如,我有一张表a,其中有name、email、mobile三个变量,另外有一张表b,其中也有name和mobile两个变量,请问如何写一个程序可以使:
1、当b中的name对应a中的name是唯一时,b中的添加一列等于a中的email
2、当b中的name对应a中的name不是唯一时,在比较两张表中的mobile,将name和mobile都同时相同的email添加在B表中。
谢谢大家了!在线等
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-1-4 16:40:48 | 只看该作者

Re: 请大家帮帮忙,初学者,谢谢了,在线等!

楼主把问题描述清楚再说

什么唯一不唯一,对应关系如何,想要别人帮你至少先自己理清思路。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2009-1-4 18:49:11 | 只看该作者

Re: 请大家帮帮忙,初学者,谢谢了,在线等!

[code:2bqonoxr]
/*程序没调试过,楼主可以自己去调试一下*/
proc sort data=a;
        by name mobile;
run;
proc sort data=b;
        by name mobile;
run;
data a1 a2;
        set a;
        if first.name+last.name=2 then output a1;
        else output a2;
run;
data result;
        merge a1 b(in=ok);
        by name;
        if ok;
run;
/*假设你这里是1对多的情况,如果是多对多,就用sql*/
data result;
        merge a2 result(in=ok);
        by name mobile;
        if ok;
run;[/code:2bqonoxr]
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-5 07:06 , Processed in 0.070834 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表