楼主: tjnkswordsman
3134 7

[问答] proc sql 多表(大于2个)查询与计算问题,请大侠解答 [推广有奖]

  • 17关注
  • 7粉丝

教授

52%

还不是VIP/贵宾

-

威望
0
论坛币
373734 个
通用积分
0.2302
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
624 点
帖子
851
精华
0
在线时间
1983 小时
注册时间
2008-4-4
最后登录
2021-3-16

楼主
tjnkswordsman 发表于 2013-11-21 21:03:52 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
本人尝试google和查书,仍未解决问题,所以来坛子里请教大侠们。

               问题如下:

               现在有三张表,我的最终目的是得出一些比率,计算这些比率时会用到不同表中的数据。

               比如,计算比率α=x/y,x在表1,y在表2.

               本人的代码如下:
                /*var1、var4在table1;var2在table2;var4、var5在table3*/
               proc sql;
create table ratio as select
var1/var2 as α,
log(var3) as β,
var4 - var5 as γ,
from  sasuser.table1  a , sasuser.table2  b ,sasuser.table3 c
on a.code=b.code and b.code=c.code and c.code=a.code
and a.date=b.date and b.date=c.date and c.date=a.date
;
quit;

提示错误:期望下列之一: !, !!, &, (, *, **, +, ',', -, /, <, <=, <>, =, >,


谢谢大侠,试问 on 后面跟的条件语句错在哪里?我想让查询的观测的code和date保持一致。谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:proc sql 计算问题 ROC sql sasuser

沙发
xieyangboy 发表于 2013-11-21 21:51:31
var4 - var5 as γ,  这里多了一个逗号,还有把on换成where试试

藤椅
tjnkswordsman 发表于 2013-11-21 22:02:07
xieyangboy 发表于 2013-11-21 21:51
var4 - var5 as γ,  这里多了一个逗号,还有把on换成where试试
谢谢,我去试试再来反馈

板凳
tjnkswordsman 发表于 2013-11-21 22:24:32
xieyangboy 发表于 2013-11-21 21:51
var4 - var5 as γ,  这里多了一个逗号,还有把on换成where试试
可以了,错误排除了。
还想继续问您:
如果表更多的话,on/where 到底选哪个呢?
有没有比较简洁的写法,替代 a.code=b.code and b.code=c.code and c.code=a.code
and a.date=b.date and b.date=c.date and c.date=a.date
这啰嗦的写法?
谢谢大侠

报纸
xieyangboy 发表于 2013-11-21 23:27:24
tjnkswordsman 发表于 2013-11-21 22:24
可以了,错误排除了。
还想继续问您:
如果表更多的话,on/where 到底选哪个呢?
我是菜鸟。。。
没见过on啊,一直用的是where
你那个语句,c.code=a.code,c.date=a.date这两个就不用写嘛

地板
wuyouheng 发表于 2013-11-22 11:37:22
多表连接,如果需要用到left join 或者right join 的时候要用到on,如果是这个情况就不需要用where

7
tjnkswordsman 发表于 2013-11-22 11:51:09
wuyouheng 发表于 2013-11-22 11:37
多表连接,如果需要用到left join 或者right join 的时候要用到on,如果是这个情况就不需要用where
谢谢您

8
tjnkswordsman 发表于 2013-11-22 11:52:18
xieyangboy 发表于 2013-11-21 23:27
我是菜鸟。。。
没见过on啊,一直用的是where
你那个语句,c.code=a.code,c.date=a.date这两个就不用写 ...
确实是这两条语句多余了。
谢谢!

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

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