簡體   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