2013-11-26 2 views
1

Я использую oracle developer, и у меня есть следующий запрос. Последнее, что мне нужно для завершения этого запроса, состоит в том, что оно вызывает много экземпляров одного и того же клиента, и я хочу видеть только один результат для каждого клиента. Любые мыслиОграничить количество записей из 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

Sico дал вам часть ответа с выбором различны.

Остальное - это присоединиться к вашим таблицам на соответствующих полях. В настоящее время вы будете получать каждого клиента в таблице, а не только тех, кто купил продукт 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 для группы строк в уникальные значения

Смежные вопросы