group by substr()的问题

new_liltcips 2014-01-08 02:34:41
select subStr(t3.SQBBH,0,9) xzqdm,
(select t.c_zqname
from gdlyjc.fl_sys_lqzqzd t
where t.c_zqcode = subStr(t3.SQBBH,0,9)) xzqmc
from LBMS_LQJFJL t2, LBMS_SLLMLDZKDJB t3
where t2.sllmldzkdjb_bh = t3.sllmldzkdjb_bh
group by subStr(t3.SQBBH,0,9);

这个查询有什么问题么,为什么会有 ORA-00979的问题啊?
显示错误位置大概在 where t.c_zqcode = subStr(t3.SQBBH,0,9)) xzqmc 这句上面.
...全文
1066 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
CT_LXL 2014-01-12
  • 打赏
  • 举报
回复
没有用聚合函数,用GROUP BY是什么意思?
骑着蜗牛奔跑 2014-01-12
  • 打赏
  • 举报
回复
SELECT 语句有很多特殊的规则,至少你应该熟悉以下几条: 1.你仅能够使用那些能通过表引用而得来的字段; 2.如果你有 GROUP BY 语句,你只能够使用 GROUP BY 语句后面的字段或者聚合函数; 3.当你的语句中没有 GROUP BY 的时候,可以使用开窗函数代替聚合函数; 4.当你的语句中没有 GROUP BY 的时候,你不能同时使用聚合函数和其它函数; 5.有一些方法可以将普通函数封装在聚合函数中; 6.……
yinan9 2014-01-08
  • 打赏
  • 举报
回复
select列表中出现的列(聚合函数如max(),min(),sum(),avg()除外),必须出现在group by语句之后 另,你的逻辑应有点混乱,试试下面的

SELECT t3.xzqdm,
  t.c_zqcode
FROM gdlyjc.fl_sys_lqzqzd t,
  LBMS_LQJFJL t2,
  (SELECT SUBSTR(t3.SQBBH,0,9) AS xzqdm, sllmldzkdjb_bh FROM LBMS_SLLMLDZKDJB
  ) t3
WHERE t.c_zqcode      =t3.xzqdm
AND t2.sllmldzkdjb_bh = t3.sllmldzkdjb_bh
GROUP BY t3.xzqdm,
  t.c_zqcode

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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