group by 运行时报错问题

andoneorzero 2010-08-05 07:01:50
我在存储过程中用类似如此的SQL语句:

insert into table1(a,b,c,...)
select (a,b,c,sum(xx),...)
from table2,table3
where ....
group by a,b,c;


编译时正常通过,但为什么运行时就报错了,看错误提示好像是group by出了问题,有知道哪些情况会导致这种错误吗?
...全文
207 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
半世码农 2010-08-17
  • 打赏
  • 举报
回复
select (a,b,c,sum(xx),...)你这个语句省略号后面是不是有很多没有聚合的字段,如果有都要放到group by后面去
[Quote=引用楼主 andoneorzero 的回复:]
我在存储过程中用类似如此的SQL语句:

insert into table1(a,b,c,...)
select (a,b,c,sum(xx),...)
from table2,table3
where ....
group by a,b,c;


编译时正常通过,但为什么运行时就报错了,看错误提示好像是group by出了问题,有知道哪些情况会导致这种错误吗?
[/Quote]
半世码农 2010-08-17
  • 打赏
  • 举报
回复
where是可以用的[Quote=引用 4 楼 gmstzs 的回复:]
group by 貌似不能和WHERE 一起用?
我的group BY 都是和 having 配合。
[/Quote]
ttkaixin01 2010-08-17
  • 打赏
  • 举报
回复
group by a,b,c
having 条件
jane_213 2010-08-13
  • 打赏
  • 举报
回复
insert into table1(a,b,c,...)
select (a,b,c,sum(xx),...)
from table2,table3
where ....
group by a,b,c;


insert into 是否与 select 匹配, 数量及类型
king138888 2010-08-11
  • 打赏
  • 举报
回复
可改成这样:select a,b,c,sum(xx),...
from table2,table3
where ...
group by a,b,c,..;
注意要用group by ,后面一定要将所有非聚集函数的字段名加上,则除sum(XX)什么之类的函数外
zmercury 2010-08-11
  • 打赏
  • 举报
回复
你select 后面的字段有问题 ·· 你都贴出来
不属于聚合的 都放到group by 后面去
duanzhi1984 2010-08-10
  • 打赏
  • 举报
回复
insert into table1(a,b,c,...)
select a,b,c,sum(xx),...
from table2,table3
where ....
group by a,b,c;
中泽三郎 2010-08-10
  • 打赏
  • 举报
回复
超级喜欢group by。
michaelmao_cn 2010-08-10
  • 打赏
  • 举报
回复
啥错误信息啊?
cnwz 2010-08-07
  • 打赏
  • 举报
回复
楼主把完整语句贴出来吧
单单就现在的语句来看需要去除SELECT后紧跟的(和同行最后的),这里不需要括号
Phoenix_99 2010-08-07
  • 打赏
  • 举报
回复
去掉select外层括号
hidanger0 2010-08-07
  • 打赏
  • 举报
回复
[Quote=引用楼主 andoneorzero 的回复:]
我在存储过程中用类似如此的SQL语句:

insert into table1(a,b,c,...)
select (a,b,c,sum(xx),...)
from table2,table3
where ....
group by a,b,c;


编译时正常通过,但为什么运行时就报错了,看错误提示好像是group by出了问题,有知道哪些情况会导致这种错误吗?
[/Quote]

最好把语句写完整点,如果select (a,b,c,sum(xx),...) 的...是非分组函数就会有问题。
gmstzs 2010-08-07
  • 打赏
  • 举报
回复
group by 貌似不能和WHERE 一起用?
我的group BY 都是和 having 配合。
ojuju10 2010-08-05
  • 打赏
  • 举报
回复
insert into table1(a,b,c,...)
select (a,b,c,sum(xx),...) --去掉外面一层括号
from table2,table3
where ....
group by a,b,c;
心中的彩虹 2010-08-05
  • 打赏
  • 举报
回复
[Quote=引用楼主 andoneorzero 的回复:]
我在存储过程中用类似如此的SQL语句:

insert into table1(a,b,c,...)
select (a,b,c,sum(xx),...)
from table2,table3
where ....
group by a,b,c;


编译时正常通过,但为什么运行时就报错了,看错误提示好像是group by出了问题,有知道哪些情况会导致这种错误吗?
[/Quote]
select a,b,c,sum(xx),... 去掉括号
还有你的插入的列的个数以及属性跟 select a,b,c,sum(xx),... 是否一致
select a,b,c,sum(xx),... 里面没有用聚合的函数的列全部放到group by后面去
gdd714 2010-08-05
  • 打赏
  • 举报
回复
语句写的没有问题呀,你带到外面来运行下可以吗。

17,078

社区成员

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

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