Oracle sql 不是group by 表达式

Oracle sql 不是group by 表达式 select a.t$deno 送货单单号,
a.t$item 物料代码,
b.t$dsca 物料说明,
sum(a.t$dequ) 送货数量,
a.t$cuqp 单位,
a.t$ddta 交货日期,
e.t$cwar 库位,
f.t$dsca 库位说明
from baandb.ttdsup403213 a
left join baandb.ttcibd001213 b
on a.t$item = b.t$item
left join baandb.ttdpur401213 e
on a.t$orno = e.t$orno
and a.t$pono = e.t$pono
and a.t$sqnb = e.t$sqnb
left join baandb.ttcmcs003213 f
on e.t$cwar = f.t$cwar
where a.t$deno = '20161200175'
group by a.t$item
order by a.t$dequ

我想把在相同物料代码的条件下分组把送货数量相加,可奇怪的是它提示的错误不是group by表达式,可是有函数的情况下我以前也这样做没问题的,有哪位大神指导我一下

看提示和单行行数,你用的oracle数据库把,对于oracle聚合函数,以你这个sql为例子,应该在group by后加上sex,work_location, trunc(last_login)
也就是select count(*),sex,work_location,trunc(last_login) from user_info group by trunc(last_login),sex,work_location,
温馨提示:内容为网友见解,仅供参考
无其他回答

sql执行 提示不是group by表达式
你的语句是错的,这个是聚集函数的问题。你在非聚集中使用聚集函数,当然不可以。也就是说,你的count()函数是不能这样用的。就算你加上group by也是不行的,除非你group by多个字段。除了count的那个字段可以不用group by,其他字段都得group by上才不会报错。

sql提示不是group by表达式
看你的提示和单行行数,你用的oracle数据库把,对于oracle聚合函数,以你这个sql为例子,应该在group by后加上sex,work_location, trunc(last_login)也就是select count(*),sex,work_location,trunc(last_login) from user_info group by trunc(last_login),sex,work_location,有什么不明白可以继续...

oracle12c:SQL 错误: ORA-00979: 不是 GROUP BY 表达式
GROUP by COMPANY.STATE ;

...在oracle里报错:ORA-00979: 不是 GROUP BY 表达式
group by 之后的查询结果没有你的order by的字段,所以才出的这个错.使用group by之后,只能查询以group by分组字段有单一值对应的字段,同样order by也只能以可以查询出来的字段来排序.你把order by后面的字段改成和group by的字段一致就不会出这个错了,但是估计就达不到你原来的要求了....

oracle 不是group by 表达式
(sal+nvl(comm,0))这个条件没带聚合函数。avg

...在oracle里报错:ORA-00979: 不是 GROUP BY 表达式
查询结果中使用的字段和order by中使用的字段都要放到group by中

oracle 运行出错:不是group by 表达式 求解
不是你任何一个条件都得写在having子句里的,你这种条件都应该写在where里才行 select score.stu_id,course.coll_id,score.term,course.grade,sum(course.xuefen) from score,coursewhere score.cou_id=course.cou_id and score.mark>59group by score.stu_id;...

ORA-00979: 不是 GROUP BY 表达式
没有为什么,oracle的一个bug 解决方法是设置一个隐含参数"_complex_view_merging"=false 运行:SQL> alter system set "_complex_view_merging" = false scope = spfile;System altered 重启数据库,再次运行先前SQL

...emp group by dept_id,错误提示:不是group表达式
使用group by, 你必须对查询的结果集使用聚集函数, 例如 SELECT AVG(score) FROM tab GROUP BY stu_no你这里的需求直接使用ORDER BY就够了 select name from emp order by dept_id

oracle视图为什么不能用group by语句
group by 表示分组,必须和count, sum, avg 等等 聚集 函数 配合使用 和视图没有什么关系,因为,你的select语法中,没有聚集函数 比如:select ACC_USER_ID,count(*) from led_event group by ACC_USER_ID;

相似回答