[英]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.