楼主: 青衣默东行
3887 10

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

  • 1关注
  • 1粉丝

已卖:231份资源

硕士生

60%

还不是VIP/贵宾

-

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

楼主
青衣默东行 发表于 2017-1-9 11:09:21 |AI写论文

+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;

沙发
青衣默东行 发表于 2017-1-9 11:10:24
对这个in-line view 语句不是很清楚,可以给顺便说一些相关知识吗?

藤椅
青衣默东行 发表于 2017-1-9 11:25:15
人工置顶

板凳
青衣默东行 发表于 2017-1-9 11:43:50
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;

地板
青衣默东行 发表于 2017-1-9 13:12:18
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
拉您进交流群
GMT+8, 2026-2-16 22:53