楼主: 01zhouxuemei
459 14

[问答] 求助各位大神:select 语句太复杂了,看不懂 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

44%

还不是VIP/贵宾

-

威望
0
论坛币
1858 个
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1196 点
帖子
79
精华
0
在线时间
228 小时
注册时间
2008-10-29
最后登录
2018-1-19

01zhouxuemei 学生认证  发表于 2018-1-5 15:49:25 |显示全部楼层
create table crspm2
as select a.*, b.dlret,
sum(1,ret)*sum(1,dlret)-1 as retadj "Return adjusted for delisting",
abs(a.prc)*a.shrout as MEq 'Market Value of Equity'
from Crsp_m a left join &crsp..msedelist(where=(missing(dlret)=0)) b
on a.permno=b.permno and
intnx('month',a.date,0,'E')=intnx('month',b.DLSTDT,0,'E')
order by a.date, a.permco, MEq;



关键词:Select Elect LEC ect 看不懂

支持楼主:购买VIP购买贵宾 购买后,论坛将把您花费的资金全部奖励给楼主,以表示您对TA发好贴的支持
 
载入中......

回帖推荐

淇兮 发表于10楼  查看完整内容

1.指代前面的表,打个比方:表是班级,变量是学生,班级可能原名叫:唯我独尊班、长春不老班,为了点名方便,就临时重命名了一下,为A班和B班,方便点名。唯我独尊班.小明=A班.小明。 2.推荐一个网站给你:http://www.w3school.com.cn/sql/sql_join_left.asp

流水不朽 发表于8楼  查看完整内容

1、create table as 是sql语言中创建表的基本语法 2、a.* ,b.dlret 等,其中,a,b是表Crsp_m,&crsp..msedelist的别名,a. 后面+的表的字段,如果是 a.* 就是取表a的全部字段 3、&crsp. 是sas中宏变量的用法,crsp 是宏变量,使用&来调用 4、left join 是表a 与 表b 进行左关联 5、missing(dlret)=0 是 字段值不为缺失 的意思。 missing 是检查字段是否存在缺失值的意思 =0 是 假,即不成立的意思。

淇兮 发表于6楼  查看完整内容

我也是小菜鸟~ 1.其中a.和b.就是指代的作用,简化名称。把a.换成Crsp_m.是一样的; 2.你是不明白left join的用法,还是不明白&crsp..msedelist(where=(missing(dlret)=0))这一段?

淇兮 发表于3楼  查看完整内容

SQL基本句式: create table 表名 as select 变量1,变量2,变量n from 表1 a(代号随便起,上面变量指代的时候和这里一致就行) (left/right/full/inner)join 表2 b(同上) on 连接条件1 and(or) 连接条件2 order by 排序变量1,排序变量2,排序变量n ;
stata SPSS
流水不朽 发表于 2018-1-5 16:04:17 |显示全部楼层
你希望理解什么?
回复

使用道具 举报

淇兮 发表于 2018-1-5 16:18:52 |显示全部楼层
SQL基本句式:
create table 表名 as
select 变量1,变量2,变量n
from 表1 a(代号随便起,上面变量指代的时候和这里一致就行)
(left/right/full/inner)join 表2  b(同上)
on 连接条件1 and(or) 连接条件2
order by 排序变量1,排序变量2,排序变量n
;
回复

使用道具 举报

01zhouxuemei 学生认证  发表于 2018-1-5 16:38:35 |显示全部楼层
淇兮 发表于 2018-1-5 16:18
SQL基本句式:
create table 表名 as
select 变量1,变量2,变量n
谢谢大神!
1、不太理解的地方是as select a.*, b.dlret和后面的
abs(a.prc)*a.shrout as MEq 'Market Value of Equity'
from Crsp_m a left join &crsp..msedelist(where=(missing(dlret)=0)) b
on a.permno=b.permno and
intnx('month',a.date,0,'E')=intnx('month',b.DLSTDT,0,'E')
中a.  以及b. 的用法和含义?
2、其中 a left join &crsp..msedelist(where=(missing(dlret)=0)) b是什么意思?

请大神指教?谢谢!新年快乐!
回复

使用道具 举报

01zhouxuemei 学生认证  发表于 2018-1-5 16:39:24 |显示全部楼层
流水不朽 发表于 2018-1-5 16:04
你希望理解什么?
谢谢大神!
1、不太理解的地方是as select a.*, b.dlret和后面的
abs(a.prc)*a.shrout as MEq 'Market Value of Equity'
from Crsp_m a left join &crsp..msedelist(where=(missing(dlret)=0)) b
on a.permno=b.permno and
intnx('month',a.date,0,'E')=intnx('month',b.DLSTDT,0,'E')
中a.  以及b. 的用法和含义?
2、其中 a left join &crsp..msedelist(where=(missing(dlret)=0)) b是什么意思?

请大神指教?谢谢!新年快乐!
回复

使用道具 举报

淇兮 发表于 2018-1-5 16:45:50 |显示全部楼层
01zhouxuemei 发表于 2018-1-5 16:38
谢谢大神!
1、不太理解的地方是as select a.*, b.dlret和后面的
abs(a.prc)*a.shrout as MEq 'Market  ...
我也是小菜鸟~
1.其中a.和b.就是指代的作用,简化名称。把a.换成Crsp_m.是一样的;
2.你是不明白left join的用法,还是不明白&crsp..msedelist(where=(missing(dlret)=0))这一段?
回复

使用道具 举报

01zhouxuemei 学生认证  发表于 2018-1-5 16:56:19 |显示全部楼层
淇兮 发表于 2018-1-5 16:45
我也是小菜鸟~
1.其中a.和b.就是指代的作用,简化名称。把a.换成Crsp_m.是一样的;
2.你是不明白left j ...
谢谢大神!
1、指代是指代某个表中的某个变量吗?还是某个表?指代什么呢?
2、不明白lef join。
不好意思,请原谅我是初学。
谢谢谢谢!
回复

使用道具 举报

流水不朽 发表于 2018-1-5 17:01:54 |显示全部楼层
1、create table as  是sql语言中创建表的基本语法
2、a.*   ,b.dlret 等,其中,a,b是表Crsp_m,&crsp..msedelist的别名,a. 后面+的表的字段,如果是 a.* 就是取表a的全部字段
3、&crsp. 是sas中宏变量的用法,crsp 是宏变量,使用&来调用
4、left join 是表a 与 表b 进行左关联
5、missing(dlret)=0  是 字段值不为缺失 的意思。  missing 是检查字段是否存在缺失值的意思  =0 是 假,即不成立的意思。
回复

使用道具 举报

01zhouxuemei 学生认证  发表于 2018-1-5 17:11:40 |显示全部楼层
流水不朽 发表于 2018-1-5 17:01
1、create table as  是sql语言中创建表的基本语法
2、a.*   ,b.dlret 等,其中,a,b是表Crsp_m,&crsp.. ...
谢谢大神!讲得很清楚!为你点赞!

谢谢谢谢!新年快乐!

回复

使用道具 举报

淇兮 发表于 2018-1-5 17:15:00 |显示全部楼层
01zhouxuemei 发表于 2018-1-5 16:56
谢谢大神!
1、指代是指代某个表中的某个变量吗?还是某个表?指代什么呢?
2、不明白lef join。
1.指代前面的表,打个比方:表是班级,变量是学生,班级可能原名叫:唯我独尊班、长春不老班,为了点名方便,就临时重命名了一下,为A班和B班,方便点名。唯我独尊班.小明=A班.小明。
2.推荐一个网站给你:http://www.w3school.com.cn/sql/sql_join_left.asp
回复

使用道具 举报

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

GMT+8, 2018-1-20 23:02