我正在使用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;
答案 0 :(得分:2)
使用SELECT DISTINCT将行分组为唯一值
答案 1 :(得分:1)
Sico用select distinct给你一部分答案。
其余部分是在匹配字段上加入表格。目前,您将获得表中的每个客户,而不仅仅是那段时间内购买了FORESTERS BEST产品的客户。要修复它,请更改:
FROM LGCUSTOMER, LGBRAND , LGINVOICE
这样的事情:
from lgcustomer join lginvoice using (something)
join lgbrand using (something else)
您将查看数据库设计以查看要加入的字段。顺便说一下,只有两个表中的fieldname相同时才使用using关键字。否则,你必须这样做。
from lgcustomer join lginvoice on lgcustomer.fieldname = lginvoice.fieldname
etc