繁体   English   中英

如何在GROUP BY表达式中再添加一列? Oracle-SQL开发人员

[英]How to add one more column into GROUP BY expression? Oracle - SQL Developer

数据库图片

SQL命令:

SELECT CUST_ID,SUM(AMOUNT_SOLD),CUST_CREDIT_LIMIT FROM(
SELECT DISTINCT
CUST_ID,AMOUNT_SOLD,CUST_CREDIT_LIMIT,
TO_CHAR(TIME_ID,'YYYY')AS YEAR FROM SH.SALES 
JOIN SH.CUSTOMERS USING (CUST_ID))
WHERE YEAR = '2001' 
GROUP BY CUST_ID;

“不是GROUP BY表达式”

没有CUST_CREDIT_LIMIT(在SUM(AMOUNT_SOLD)之后),它可以工作,但是该列对我来说是必填的,我需要对其进行跟踪。

结果应该是每个客户(CUST_ID)都应该有2001年的所有夏季销售额(SUM(AMOUNT_SOLD)和他的信用额度(CUST_CREDIT_LIMIT)...它没有信用额度,但我需要使用它。

有人可以帮忙吗?

该错误正是它的意思。

SELECT CUST_ID,SUM(AMOUNT_SOLD),CUST_CREDIT_LIMIT FROM(
SELECT DISTINCT
CUST_ID,AMOUNT_SOLD,CUST_CREDIT_LIMIT,
TO_CHAR(TIME_ID,'YYYY')AS YEAR FROM SH.SALES 
JOIN SH.CUSTOMERS USING (CUST_ID))
WHERE YEAR = '2001' 
GROUP BY CUST_ID,CUST_CREDIT_LIMIT;

我会说与此同时还有其他问题(为什么要使用DISTINCT?等),但这应该使您受GROUP BY错误的困扰。

您的群组中必须有CUST_CREDIT,
您可以重新选择全部

select  cust_id, sumid from (select SUM(AMOUNT_SOLD) sumid, your code
group by "all fields execpt calculate fields (grouped) sum, max etc  )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM