楼主: 青衣默东行
3219 10

sas sql in-line view 语句 [推广有奖]

  • 1关注
  • 1粉丝

硕士生

60%

还不是VIP/贵宾

-

威望
0
论坛币
2633 个
通用积分
0.1695
学术水平
2 点
热心指数
2 点
信用等级
2 点
经验
5470 点
帖子
92
精华
0
在线时间
217 小时
注册时间
2015-5-14
最后登录
2018-6-11

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
proc sql;
  select p.product,s.total
     from one as p
         left join
         (select sum(sales) as total
        from two as s)
         on p.id=s.id;
quit;
提示

84   proc sql;
85     select p.product,s.total
86        from one as p
87        left join
88        (select sum(sales) as total
89           from two as s)
90        on p.id=s.id;
ERROR: 列 total 在表/视图中未找到,其相关名为 S.
91   quit;
请问是为什么?

二维码

扫码加我 拉你入群

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

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

关键词:line view Lin sql VIE

回帖推荐

liujunhzau524 发表于5楼  查看完整内容

通过id做左连接,两个表都应该有id这个字段才行,参见下面代码,注意红色的标注;其实这就是关系数据库通用的SQL语句 proc sql; select p.product,s.total from one as p left join (select id,sum(sales) as total from two ) as s on p.id=s.id; quit;
对这个in-line view 语句不是很清楚,可以给顺便说一些相关知识吗?

使用道具

人工置顶

使用道具

sas adv 机经里的问题

使用道具

报纸
liujunhzau524 发表于 2017-1-9 12:48:37 |只看作者 |坛友微信交流群
通过id做左连接,两个表都应该有id这个字段才行,参见下面代码,注意红色的标注;其实这就是关系数据库通用的SQL语句
proc sql;
  select p.product,s.total
     from one as p
         left join
         (select id,sum(sales) as total
        from two ) as s
         on p.id=s.id;
quit;

使用道具

liujunhzau524 发表于 2017-1-9 12:48
通过id做左连接,两个表都应该有id这个字段才行,参见下面代码,注意红色的标注;其实这就是关系数据库通用 ...
恩恩,懂了,非常感谢。

使用道具

7
青衣默东行 发表于 2017-1-9 13:18:52 |只看作者 |坛友微信交流群
liujunhzau524 发表于 2017-1-9 12:48
通过id做左连接,两个表都应该有id这个字段才行,参见下面代码,注意红色的标注;其实这就是关系数据库通用 ...
但是这样运行出来的结果跟题中的答案不一样啊。
数据集分别是:data one;
  input id product;
  cards;
  1 1001
  2 1002
  3 1003
  ;
data two;
  input id sales;
  cards;
  3 100
  1 200
  5 100
  1 200
  3 100
  1 100
  ;
run;
但是要求运行结果是:
product  total
1001      500
1002        .
1003      200
怎么样能做出这样的结果?

使用道具

8
青衣默东行 发表于 2017-1-9 13:19:58 |只看作者 |坛友微信交流群
liujunhzau524 发表于 2017-1-9 12:48
通过id做左连接,两个表都应该有id这个字段才行,参见下面代码,注意红色的标注;其实这就是关系数据库通用 ...
按照您改进的程序运行结果是:
product total
1001 800
1001 800
1001 800
1002 .
1003 800
1003 800

使用道具

9
liujunhzau524 发表于 2017-1-9 18:30:41 |只看作者 |坛友微信交流群
青衣默东行 发表于 2017-1-9 13:19
按照您改进的程序运行结果是:
product total
1001 800
需要对id进行分组
proc sql;
  select p.product,s.total
     from one as p
         left join
         (select id, sum(sales) as total
        from two group by id) as s
         on p.id=s.id;
运行结果
producttotal
1001500
1002.
1003200



使用道具

10
青衣默东行 发表于 2017-1-15 19:44:06 |只看作者 |坛友微信交流群
liujunhzau524 发表于 2017-1-9 18:30
需要对id进行分组
proc sql;
  select p.product,s.total
谢谢啦。知道了。

使用道具

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

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

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

GMT+8, 2024-4-26 11:02