编译新视图时提示ora-00979

本文介绍了在遇到ora-00979错误时,如何检查并解决SQL语句中group by子句与select子句的关系问题。主要关注点在于确保group by后的所有字段在select中出现,并且select中除group by字段外的其他字段使用了聚合函数。
摘要由CSDN通过智能技术生成

1、检查group by后面所有的字段是否都在select后面了?

2、Seclect后面的字段里,除了group by后面的字段以外,是否都做了聚合函数处理?

比如以下代码就是dpet_name字段未做聚合函数处理,编译时会报ora-000979的错误。

CREATE OR REPLACE VIEW C##database.TEST_LLW_SELLS_DTL_HOUR
    (ITEM_ID,ITEM_NAME,DPET_ID,DPET_NAME,CHECKOUT_DT,HOUR24,QTY,AMOUNT)
AS
SELECT

	A.ITEM_ID 						as ITEM_ID,
	max(B.ITEM_NAME) 				as ITEM_NAME,
	A.dpet_ID						as dpet_ID, 
	C.DEPT_NAME					as dpet_NAME,
to_char(A.CHECKOUT_DT,'yyyy-mm-dd')	as CHECKOUT_DT, 
	to_char(A.CHECKOUT_DT,'hh24')	as HOUR24,
	sum(A.QTY)						as QTY,
	sum(A.SALE_REAL_AMT)			as AMOUNT


FROM
TableA A
LEFT JOIN TableB B ON A.ITEM_ID = B.ITEM_ID
LEFT JOIN TableC C ON A.DPET_ID = C.DPET_ID
GROUP BY A.ITEM_ID, A.DPET_ID,to_char(A.CHECKOUT_DT,'yyyy-mm-dd') ,to_char(A.CHECKOUT_DT,'hh24')
/

给dpet_name字段加个max()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值