我有許多表格,詳細說明一個店的客戶和銷售等方面的SQL:沒有哪一個組功能....不是一個GROUP BY表達式
我想找到的最低出售價格;即由SQL表達式返回的單個結果。
爲了使結果有意義,我還想要將customer_sale表與客戶表一起加入(以便相關客戶也將返回其姓名)。
使用在Oracle 11g中下面的代碼
SELECT CUST_ORDER.CUST_ID, CUSTOMER.FNAME, CUSTOMER.LNAME, MIN(SALE_PRICE)
FROM CUST_ORDER
INNER JOIN CUSTOMER
ON CUST_ORDER.CUST_ID = CUSTOMER.CUST_ID
GROUP BY CUST_ORDER.CUST_ID
HAVING MIN(SALE_PRICE) = (SELECT MIN(SALE_PRICE) FROM CUST_ORDER GROUP BY CUST_ID)
引發以下錯誤:
ERROR at line 1: ORA-00979: not a GROUP BY expression
這是有道理的,因爲它是隻返回一個結果。
但是刪除GROUP BY子句導致DBMS拋出以下錯誤:
SELECT CUST_ORDER.CUST_ID, CUSTOMER.FNAME, CUSTOMER.LNAME, MIN(SALE_PRICE)
FROM CUST_ORDER
INNER JOIN CUSTOMER
ON CUST_ORDER.CUST_ID=CUSTOMER.CUST_ID
HAVING MIN(SALE_PRICE) = (SELECT MIN(SALE_PRICE) FROM CUST_ORDER)
ERROR at line 1: ORA-00937: not a single-group group function
有一些額外的嵌套,我必須做的陳述正確執行?
似乎現場工作! – user137263