楼主: gqm2008
3951 5

用merge或者sql合并两个表之后,如何删去缺省数据(显示为空白) [推广有奖]

  • 2关注
  • 1粉丝

大专生

11%

还不是VIP/贵宾

-

威望
0
论坛币
7 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
165 点
帖子
41
精华
0
在线时间
33 小时
注册时间
2011-7-26
最后登录
2013-10-13

楼主
gqm2008 发表于 2011-7-27 17:26:22 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如题,我现在有表A为销售状况数据,包含 A.id,date,表B为商品价格表,包含B.id, price。

我是用merge 或者sql,但是都会留下我不需要的数据。因为A.id 和B.id不是完全一一对应的。

所以我现在想保留的表应该包含 A.id与B.id中都存在的商品id, date,price。

请问应该怎么做?

非常感谢!
二维码

扫码加我 拉你入群

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

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

关键词:Merge sql Price date Rice 数据 sql 空白 Merge 缺省

沙发
yugao1986 发表于 2011-7-27 17:39:16
试试
  1. /*sql*/
  2. proc sql;
  3. select coalesce(a.id,b.id)
  4. as id,date,price
  5. from a
  6. full join
  7. b
  8. on a.id=b.id;
  9. quit;
  10. /*merge*/
  11. data new;
  12. merge a b;
  13. by id;
  14. run;
复制代码
三人行必有我师

藤椅
pobel 在职认证  发表于 2011-7-27 17:39:23
data c;
    merge a(in=froma) b(in=fromb);
     by id;
    if froma and fromb;
run;

或者

proc sql;
    create table c as
      select a.* ,b.price
from a, b
where a.id=b.id;
quit;
和谐拯救危机

板凳
gqm2008 发表于 2011-7-27 18:25:50
2# yugao1986
谢谢,试试去!

报纸
gqm2008 发表于 2011-7-27 18:28:14
3# pobel

哥,你真是好人!

地板
soporaeternus 发表于 2011-7-28 08:59:29
2# yugao1986
我感觉是inner join而非full join......
Let them be hard, but never unjust

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 12:58