全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2872 12
2014-03-16
数据集A(date 是年月):
id     date
1     201001
1     201002
1     201003
1     201004
1     201005
1     201006
1     201007
1     201008
2     201001
2     201002
2     201003
2     201004
2     201005

2     201006
2     201007
2     201008

3     201001
3     201002
3     201003
3     201004
3     201005

3     201006
3     201007
3     201008


数据集B:
id   date
1   201003
2   201004
3   201006

问题:我要从A中找出B中各id对应月份的前后各两月,即要得到:

数据集C:
id     date
1     201001
1     201002
1     201004
1     201005
2     201002
2     201003
2     201005
2     201006

3     201004
3     201005
3     201007
3     201008



请问如何编代码,谢谢!!
二维码

扫码加我 拉你入群

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

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

全部回复
2014-3-17 00:00:08
proc sql;
  create table want as
  select a.id, a.date from a,b
  where a.id=b.id and  ( -2<=a.date-b.date<=2  and a.date^=b.date);
  quit;
二维码

扫码加我 拉你入群

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

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

2014-3-17 09:51:34
farmman60 发表于 2014-3-17 00:00
proc sql;
  create table want as
  select a.id, a.date from a,b
谢谢!
二维码

扫码加我 拉你入群

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

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

2014-3-17 10:03:02
farmman60 发表于 2014-3-17 00:00
proc sql;
  create table want as
  select a.id, a.date from a,b
请问如果我的数据是跨年的应该如何解决呢?比如:
数据集A:
id     date
1     200910
1     200911
1     200912
1     201001
1     201002
1     201003
1     201004

数据集B:
id     date
1     201001

要得到数据集C:
1     200911
1     200912
1     201002
1     201003

谢谢!

二维码

扫码加我 拉你入群

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

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

2014-3-17 10:06:05
intck+input
二维码

扫码加我 拉你入群

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

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

2014-3-17 10:13:00
soporaeternus 发表于 2014-3-17 10:06
intck+input
我对sql过程不懂,能不能请您说得明白一些,谢谢!
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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