总提示ORA-00979:不是GROUP BY 表达式,可以已经做分组了
查询语句如下,
SELECT B.SPCODE SPCODE,
B.BARCODE BARCODE,
B.NAME NAME,
C.FDBH FDBH,
sum(C.XSJE) XSJE,sum(C.XSSL) XSSL,
(SELECT SUM(P.JHSL*P.JHDJ)/SUM(P.JHSL) from SPFPCJC P,KCPCXX K WHERE P.KCPCH=K.KCPCH AND P.SP_ID=C.SP_ID AND TRUNC(K.JHSJ)>=TO_DATE('2020.01.01') AND TRUNC(K.JHSJ)<=TO_DATE('2020.01.31')) JHCB
FROM SKTXSJL L,
SKTXSJLC C,
SKTXSJLM M,
SPXX_JB B
WHERE ( L.SKTNO = C.SKTNO ) and
( L.SKTNO = M.SKTNO ) and
( C.SP_ID = B.SP_ID ) and
( L.JLBH = C.JLBH ) and
( L.JLBH = M.JLBH ) and
( ( M.SKFS = 29 ) AND
( trunc(L.JYSJ) >= '2020.01.01' AND TRUNC(L.JYSJ)<='2020.01.31') )
GROUP BY B.SPCODE,
B.BARCODE,
B.NAME,
C.FDBH;
SELECT B.SPCODE SPCODE,
B.BARCODE BARCODE,
B.NAME NAME,
C.FDBH FDBH,
sum(C.XSJE) XSJE,sum(C.XSSL) XSSL,
(SELECT SUM(P.JHSL*P.JHDJ)/SUM(P.JHSL) from SPFPCJC P,KCPCXX K WHERE P.KCPCH=K.KCPCH AND P.SP_ID=C.SP_ID AND TRUNC(K.JHSJ)>=TO_DATE('2020.01.01') AND TRUNC(K.JHSJ)<=TO_DATE('2020.01.31')) JHCB
FROM SKTXSJL L,
SKTXSJLC C,
SKTXSJLM M,
SPXX_JB B
WHERE ( L.SKTNO = C.SKTNO ) and
( L.SKTNO = M.SKTNO ) and
( C.SP_ID = B.SP_ID ) and
( L.JLBH = C.JLBH ) and
( L.JLBH = M.JLBH ) and
( ( M.SKFS = 29 ) AND
( trunc(L.JYSJ) >= '2020.01.01' AND TRUNC(L.JYSJ)<='2020.01.31') )
GROUP BY B.SPCODE,
B.BARCODE,
B.NAME,
C.FDBH;
...全文
相关推荐
ORA-00979 不是group by 表达式
NULL 博文链接:https://13966692733-163-com.iteye.com/blog/1147017
彻底解析ORA-00979:非GROUP BY表达式错误及实战解决方案
根据 ISO/IEC 9075-2:2011(SQL/Foundation),中的每一个若不属于(即聚合函数),则必须满足以下条件之一:.”这意味着:任何出现在 SELECT 中的非聚合列,都必须精确出现在 GROUP BY 子句中。这是 SQL 标准强制要求的语义完整性规则。此外,标准还允许通过实现表达式级别的匹配,前提是表达式完全相同且可确定性求值。概念说明统计粒度决定GROUP BY字段的核心依据,通常对应报表的“每一行代表什么”
Oracle 错误代码整理总结
主要介绍了Oracle 错误代码总结详细介绍的相关资料,需要的朋友可以参考下
oracle分析函数.doc
oracle分析函数.doc
oracle中distinct的用法详解
下面先来看看例子: table表 字段1 字段2 id name 1 a 2 b 3 c 4 c 5 b 库结构大概这样,这只是一个简单的例子,实际情况会复杂得多。 比如我想用一条语句查询得到name不重复的所有数据,那就必须使用distinct去掉多余的重复记录。 select distinct name from table 得到的结果是: ———- name a b c 好像达到效果了,可是,我想要得到的是


基础和管理
