楼主: lee_hedonist
3145 4

求助!SQL查询出现重复结果 [推广有奖]

  • 0关注
  • 1粉丝

大专生

58%

还不是VIP/贵宾

-

威望
0
论坛币
414 个
通用积分
2.3609
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
521 点
帖子
30
精华
0
在线时间
51 小时
注册时间
2007-5-20
最后登录
2022-9-6

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
向高手求助,我用procsql来筛选使需要回归的指数的日期相对应,但是第一组数据(000300与000914)结果正常,第二组数据(000300与000951)查询结果却有重复数据了(比如,2010-1-1日的回报率会出现两次),刚学SAS没多久,不知道为什么啊!
我的程序如下:
/*对000300与000914根据时间进行数据筛选*/
proc sql;
create table temp1 as
select index000300.idxtrd01,index000300.idxtrd08
from index000300,index000914
where index000300.idxtrd01= index000914.idxtrd01;
run;
proc sql;
create table temp2 as
select index000914.idxtrd01,index000914.idxtrd08
from index000914,temp1
where index000914.idxtrd01= temp1.idxtrd01;
run;
proc sql;
create table temp3 as
select index000300.idxtrd01,index000300.idxtrd08
from index000300,temp2
where index000300.idxtrd01= temp2.idxtrd01;
run;
quit;
data temp2;
set temp2;
rename idxtrd08=r000914;
attrib r000914 label='r000914';
run;
data temp3;
set temp3;
rename idxtrd08=r000300;
attrib r000914 label='r000300';
drop idxtrd01
run;
data index300914;
merge temp2 temp3;
run;
quit;
/*对000300与000951根据时间进行筛选*/
proc sql;
create table temp1 as
select index000300.idxtrd01,index000300.idxtrd08
from index000300,index000951
where index000300.idxtrd01= index000951.idxtrd01;
run;
proc sql;
create table temp2 as
select index000951.idxtrd01,index000951.idxtrd08
from index000951,temp1
where index000951.idxtrd01= temp1.idxtrd01;
run;
proc sql;
create table temp3 as
select index000300.idxtrd01,index000300.idxtrd08
from index000300,temp2
where index000300.idxtrd01= temp2.idxtrd01;
run;
quit;
data temp2;
set temp2;
rename idxtrd08=r000951;
attrib r000951 label= 'r000951';
run;
data temp3;
set temp3;
rename idxtrd08=r000300;
attrib r000300 label= 'r000300';
drop idxtrd01;
run;
data index300951;
merge temp2 temp3;
run;

其中idxtrd01是时间,idxtrd08是回报率
二维码

扫码加我 拉你入群

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

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

关键词:sql proc sql Select Create rename 求助 结果 查询 sql

回帖推荐

dchrenstu 发表于2楼  查看完整内容

proc sql; create table temp2 as select distinct index000914.idxtrd01,index000914.idxtrd08 from index000914,temp1 where index000914.idxtrd01= temp1.idxtrd01; run; 试一下

本帖被以下文库推荐

沙发
dchrenstu 发表于 2010-4-8 11:11:05 |只看作者 |坛友微信交流群
proc sql;
create table temp2 as
select distinct index000914.idxtrd01,index000914.idxtrd08
from index000914,temp1
where index000914.idxtrd01= temp1.idxtrd01;
run;
试一下
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

使用道具

藤椅
lee_hedonist 发表于 2010-4-8 11:17:44 |只看作者 |坛友微信交流群
2# dchrenstu
大谢阿,不过弱问distinct的作用是什么

使用道具

板凳
dchrenstu 发表于 2010-4-8 11:20:51 |只看作者 |坛友微信交流群
选择变量里面唯一的的观测值

使用道具

报纸
oushivv 发表于 2010-4-8 17:27:15 |只看作者 |坛友微信交流群
看来你得好好学习一下SQL语句的了  呵呵

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-11-5 22:02