全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1416 2
2012-10-17
下面这段程序是删除M3 的use_name 在temp1中的记录,M3中之前有n1条记录,运行程序后,日志中显示删除了n2条记录,但是打开M3时仍然还有n1条记录,求各位大侠解答下!

proc sql;
delete from M3
where use_name in (select use_name from temp1);
quit;
二维码

扫码加我 拉你入群

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

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

全部回复
2012-10-17 16:35:18
我试了下是可以的。你的完整代码呢?

687  data temp1(keep=use_name);
688  set sashelp.vtable;
689  rename memname=use_name;
690  run;

NOTE: 从数据集 SASHELP.VTABLE. 读取了 109 个观测
NOTE: 数据集 WORK.TEMP1 有 109 个观测和 1 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.06 秒
      CPU 时间          0.07 秒


691
692  data M3(keep=use_name);
693  set temp1;
694  if _N_<=50;
695  run;

NOTE: 从数据集 WORK.TEMP1. 读取了 109 个观测
NOTE: 数据集 WORK.M3 有 50 个观测和 1 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.00 秒
      CPU 时间          0.00 秒


696
697  proc sql;
698  delete from M3
699  where use_name in (select use_name from temp1);
NOTE: 有 50 行从 WORK.M3 中删除。

700  quit;
NOTE: “PROCEDURE SQL”所用时间(总处理时间):
      实际时间          0.00 秒
      CPU 时间          0.01 秒
二维码

扫码加我 拉你入群

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

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

2012-10-17 16:44:32
getstory 发表于 2012-10-17 16:35
我试了下是可以的。你的完整代码呢?

687  data temp1(keep=use_name);
我程序并没有报错,M3中有919320条记录,temp1中有485075条记录,用上述程序跑一遍后,日志中显示有删除,实际上M3中还是原表,后来没办法,就改用下面的程序做的:
data temp1;
set temp1;
n=1;
run;
proc sort data=temp1;by use_name;run;
proc sort data=m3;by use_name;run;
data temp2;   
   merge m3  temp1;
   by use_name;
  if n=1 then delete;
drop n;
run;
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群