select t1.name,ROUND(NVL(t2.SCORE,0),2) SCORE from(
select * from sys_area_b where parent_id='440100000000') t1
left join (
select u.addvcd_area,avg(a.score)+60 SCORE from USER_SCORE_B_187 a
left join sys_user_b u on u.id=a.user_id
where u.river_type in(${riverType})
<![CDATA[and to_date(to_char(a.create_Date,'yyyy-mm-dd'),'yyyy-mm-dd') >= to_date(#{strTm},'YYYY-MM-DD')
and to_date(to_char(a.create_Date,'yyyy-mm-dd'),'yyyy-mm-dd') < to_date(#{endTm},'YYYY-MM-DD')
]]>
and a.user_id in (
select a.id from sys_user_b a
left join rm_riverchief_section_r section on section.user_id=a.id
left join rm_river_lake lake on lake.id=section.river_section_id
where section.del_flags='0' and a.del_flag='0' and a.IS_RIVERCHIEF='Y'
and lake.IS_HC152 is not null
and lake.IS_HC35 is not null
)
group by u.addvcd_area
)t2 on t1.id=t2.addvcd_area
order by ROUND(NVL(t2.SCORE,0),2) desc
老是提示ORA-00936: 缺失表达式,找不出问题,麻烦各位大神给看看
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- lshen01 2023-03-15 18:34关注
参考GPT和自己的思路:
这个问题的错误提示ORA-00936: 缺失表达式通常是由于SQL语法错误引起的。可以尝试检查SQL语句中的括号、逗号、引号等符号是否匹配正确,还要检查查询语句中的别名和函数的正确性。根据你提供的SQL语句,有可能是以下原因导致错误提示:
- 子查询中的某个语句缺失表达式或存在语法错误,可能会导致整个SQL语句执行出错。需要仔细检查子查询中各个语句的语法正确性,特别是关键字是否正确,拼写是否正确,句法是否完整等。
- 查询语句中可能存在语义上的逻辑错误,例如在LEFT JOIN等连接操作中表达式不完整、条件缺失或括号不匹配等问题。需要重新检查查询逻辑和条件,确保逻辑正确性和表达式完整性。
- 对于变量的使用也需要考虑,例如这个语句中的${riverType}和#{strTm}、#{endTm}是变量,需要检查它们是否正确地被初始化或替换为具体的数值或字符串值。
综上所述,建议逐行检查SQL语句并仔细化解错误提示的具体异常信息,找到语法或逻辑上的问题,以寻找正确的答案。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
- ¥15 fluent的在模拟压强时使用希望得到一些建议
- ¥15 STM32驱动继电器
- ¥15 Windows server update services
- ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
- ¥15 模糊pid与pid仿真结果几乎一样
- ¥15 java的GUI的运用
- ¥15 Web.config连不上数据库
- ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
- ¥15 怎么配置广告联盟瀑布流