SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 785|回复: 1
打印 上一主题 下一主题

[疑难解惑] 有关MODIFY的问题,总是不能得到想要的结果

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2012-7-26 15:58:56 | 只看该作者

[疑难解惑] 有关MODIFY的问题,总是不能得到想要的结果

请各位大侠帮忙看看。
想将master中,id=2、3、4的数据更新,log中显示已经更新,但实际结果没有。
十分感谢!!!

[color=#4000FF:18s9p2hl]NOTE: There were 5 observations read from the data set WORK.TRANSACTION.
NOTE: The data set WORK.MASTER has been updated.  There were 3 observations rewritten, 2 observations added and 0
      observations deleted.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds[/color:18s9p2hl]

[code:18s9p2hl]DATA master(index=(id));
        INPUT id value;
DATALINES;
1 10
2 20
3 30
4 40
5 50
;
RUN;
DATA transaction;
        INPUT id value;
DATALINES;
2 12
3 13
4 14
6 16
7 17
;
RUN;

data master;
        set transaction;
        modify master key=id;
        select (_iorc_);
                when (%sysrc(_sok)) do;
                        replace;
                end;
                when (%sysrc(_dsenom)) do;
                        _error_=0;
                        output;
                end;
        end;
run;
proc print data=master;run;[/code:18s9p2hl]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2012-7-26 18:25:31 | 只看该作者

Re: [疑难解惑] 有关MODIFY的问题,总是不能得到想要的结果

谢谢各位关注,我已经知道如何在MODIFY中使用REPLACE了。程序调整如下:

[code:1zmcewsq]DATA master(index=(id));
       INPUT id value;
    DATALINES;
    1 10
    2 20
    3 30
    4 40
    5 50
    ;
    RUN;
    DATA transaction;
       INPUT id newvalue;
    DATALINES;
    2 12
    3 13
    4 14
    6 16
    7 17
    ;
    RUN;

    data master;
       set transaction;
       modify master key=id;
       select (_iorc_);
          when (%sysrc(_sok)) do;
                  value=newvalue;
                  replace;
          end;
          when (%sysrc(_dsenom)) do;
             _error_=0;
             value=newvalue;
             output;
          end;
       end;
    run;
    proc print data=master;run;[/code:1zmcewsq]
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-4 00:14 , Processed in 0.124949 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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