2013-11-26 96 views
1

我正在使用oracle開發人員,並且我有以下查詢。我需要完成這個查詢的最後一件事是因爲它帶來了同一個客戶的許多實例,我只想看到每個客戶的一個結果。任何想法根據特定要求限制SQL的記錄數

SELECT CUST_FNAME, CUST_LNAME, CUST_STREET, CUST_CITY, CUST_STATE, CUST_ZIP 
FROM LGCUSTOMER, LGBRAND , LGINVOICE 
WHERE BRAND_NAME = 'FORESTERS BEST' 
AND lginvoice.INV_DATE BETWEEN TO_DATE('20110715','YYYYMMDD') AND   TO_DATE('20110731','YYYYMMDD') 
ORDER BY CUST_STATE, CUST_LNAME, CUST_FNAME; 

回答

1

西科給你使用select distinct答案的一部分。

其餘部分是在匹配字段上加入表格。目前,您將獲得表中的每位客戶,而不是那些在此間隔期間購買了FORESTERS BEST產品的客戶。這樣

FROM LGCUSTOMER, LGBRAND , LGINVOICE 

的東西:要解決這個問題,改變這種

from lgcustomer join lginvoice using (something) 
join lgbrand using (something else) 

你必須看看你的數據庫設計,看看哪些領域參與上。順便說一句,只有在兩個表中的字段名相同的情況下,using關鍵字才起作用。否則,你必須這樣做。

from lgcustomer join lginvoice on lgcustomer.fieldname = lginvoice.fieldname 
etc 
2

使用SELECT DISTINCT對行分組到唯一值