我使用的是oracle开发人员,我有以下查询。我需要完成这个查询的最后一件事是,它会显示同一个客户的许多实例,我只希望每个客户看到一个结果。任何想法

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;

最佳答案

西科给了你一部分答案。
剩下的就是在匹配的字段上连接表。目前,你将得到表中的每一个客户,而不仅仅是那些谁买了一个森林人最好的产品在那段时间。要解决此问题,请更改:

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

10-08 12:38