楼主: vinicream
1684 4

[问答] 求高手知道,SQL部分总是报错说ORDER 应该是OR!!! [推广有奖]

  • 0关注
  • 0粉丝

高中生

77%

还不是VIP/贵宾

-

威望
0
论坛币
2264 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
178 点
帖子
9
精华
0
在线时间
58 小时
注册时间
2010-4-22
最后登录
2021-11-18

楼主
vinicream 在职认证  发表于 2017-7-6 17:46:44 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
出问题的是下面的代码,日志也在后面。
  1. proc sql;
  2.         create table point.ad_pp as
  3.         select         pin.memberId, pin.personName, pin.gender, pin.age, pin.entryYear, MIN(pin.timeIn) as firstIn,MAX(pin.timeIn) as lastIn, MAX(pin.timeConsume) as lastConsume,SUM(pin.pointIn) as sum_in, pin.balance, pin.enterpriseId
  4.         from (
  5.                         select         p.memberId, p.name AS personName, p.enterpriseId, p.gender,
  6.                         case         WHEN (p.birthyear>1900 and p.birthYear<2000) THEN (2017-p.birthYear) ELSE '0'        END AS age,
  7.                         CASE        WHEN ad.type=2 THEN ad.pointin ELSE 0 END AS pointIn,
  8.                         CASE        WHEN ad.type=2 THEN ad.timecreated END AS timeIn,
  9.                         CASE         WHEN ad.type=5 THEN ad.timecreated END AS timeConsume,
  10.                                         p.entryYear,  ad.balance, ad.timeCreated,ad.type
  11.                         FROM         jifenpay.AccountDetail as ad
  12.                         LEFT        JOIN userdoor.Person as p
  13.                         ON                 p.memberid=ad.memberid
  14.                         WHERE         ad.memberType=1 AND NOT (ad.otherName LIKE '%测试%' OR p.name LIKE '%测试%') AND ad.timeCreated<'2017-07-01' AND NOT (ad.enterpriseId IN (408, 819, 3411) )
  15.                         order         BY p.memberId, ad.timeCreated DESC
  16.                 ) pin
  17.         GROUP         BY pin.memberid
  18.         ORDER         BY MAX(pin.timecreated)
复制代码

1499334254(1).png
然后就出现了上面的日志,求大神指导什么情况,这段sql代码在MySQL里跑是完全OK的。


二维码

扫码加我 拉你入群

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

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

关键词:Order 求高手 sql der Enterprise

沙发
lava_mb 发表于 2017-7-7 03:57:55
目前看貌似是在SAS中日期常数表示有误,日期常数的形式为“date9.”d
‘2017-07-01'应为'01Jul2017'd
不过在日志中类似的报错提示为“某表达式具有不同数据类型的组件”……
你再试试看吧

藤椅
vinicream 在职认证  发表于 2017-7-11 10:23:30
就是order 总是说我应该是or,这个该怎么破啊,试了好多次了,想不明白。

板凳
大片阳光因你 发表于 2017-7-11 11:30:18
我遇到过一模一样的问题 后面发现是in-line view的特性 无解
Characteristics of in-line views include the following:
• An in-line view is not assigned a permanent name, although it can take an alias.
• An in-line view can be referred to only in the query in which it is defined. It cannot
be referenced in another query.
• You cannot use an ORDER BY clause in an in-line view.
http://support.sas.com/documentation/cdl/en/sqlproc/69822/PDF/default/sqlproc.pdf   
page 262

报纸
vinicream 在职认证  发表于 2017-7-12 16:46:42
大片阳光因你 发表于 2017-7-11 11:30
我遇到过一模一样的问题 后面发现是in-line view的特性 无解
我是想先排序,然后取balance的时候,可以取到最后一次记录时候的余额.... 那这样岂不是取不到了...

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

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