子查询中使用order by报错?

无爱大叔 2012-04-07 04:12:13
select t.yjfk_id,t.fid,t.yhid,jlcjr yhxm,t.lxfs,t.jlcjsj,t.bt,t.nr,(select count(0) from epdm_yjfk where fid=t.yjfk_id) hfs
,(select jlcjsj from EPDM_YJFK where fid=t.yjfk_id and fid!='0' and rownum=1 order by jlcjsj desc) zhhfsjfrom EPDM_YJFK t where t.fid='0' and t.yhid='1003' order by jlcjsj desc

如上是个留言版的查询语句,要查出留言信息、留言的回复数、留言的最后回复时间和回复人。
留言和回复在一个表中,yjfk_id是主键,fid是父id,fid=0代表此留言是留言而不是回复。
如上红色部分报错,提示缺少右括号,红色部分为查询留言的最后回复时间(每条留言可多条回复,取最后回复时间)
...全文
263 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
无爱大叔 2012-04-10
  • 打赏
  • 举报
回复
表结构就是在留言表里增加字段:最后回复人、最后回复时间、回复数量
larrychen_bmw 2012-04-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

其实我自己已经通过修改表结构解决了,想知道sql如何实现?没人?
[/Quote]

能否把表结构带字段注释贴上来下呢 ?
无爱大叔 2012-04-08
  • 打赏
  • 举报
回复
其实我自己已经通过修改表结构解决了,想知道sql如何实现?没人?
无爱大叔 2012-04-07
  • 打赏
  • 举报
回复
谢谢楼上的,如果我要取最后回复人,应该怎么取?
ssqtjffcu 2012-04-07
  • 打赏
  • 举报
回复
你取最后回复时间错了,不是这样取,按下面的就可以了

select t.yjfk_id,
t.fid,
t.yhid,
jlcjr yhxm,
t.lxfs,
t.jlcjsj,
t.bt,
t.nr,
(select count(0) from epdm_yjfk where fid = t.yjfk_id) hfs,
(select max(jlcjsj)
from EPDM_YJFK
where fid = t.yjfk_id
and fid != '0') zhhfsjfrom EPDM_YJFK t
where t.fid = '0'
and t.yhid = '1003'
order by jlcjsj desc

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧