Quantcast
Channel: SQL.ru: Firebird, InterBase
Viewing all articles
Browse latest Browse all 1677

Ограничить количество строк с таблицы JOIN

$
0
0
Доброе время суток форумчане
Есть вот такой запрос

select c.*,
   cl.NAME_ORGANIZATION_FULL as cl_NAME_ORGANIZATION_FULL, cl.TYPE_NP || cl.CITY as cl_NP, cl.ID as cl_CLIENT_ID,
   cc.LIST_PROPOSAL_NUMBER_IN as cc_LIST_PROPOSAL_NUMBER_IN,
   b.BANK_COUNT as b_BANK_COUNT, b.NAME as b_NAME, b.CITY as b_CITY,
   pd.PAID_STATUS as pd_PAID_STATUS, pd.ID as pd_ID,
   a.NUMBER_ACCOUNT as a_NUMBER_ACCOUNT, a.DATE_NUMBER_ACCOUNT as a_DATE_NUMBER_ACCOUNT, a.ID as a_ID,
   ce.EXECUTE_BEGIN as ce_EXECUTE_BEGIN, ce.EXECUTE_END as ce_EXECUTE_END, ce.CONTRACT_FRAME as ce_CONTRACT_FRAME, ce.CONTRACT_NUMBER as ce_CONTRACT_NUMBER, ce.SORT_WORK_LIST as ce_SORT_WORK_LIST,
   ct.PROPOSAL_ID as ct_PROPOSAL_ID,   p.NUMBER_IN as NUMBER_IN
       from CONTRACT c
       left join V_STATISTIC_CONTRACT cc on cc.CONTRACT_ID = c.ID
       join CROSS_T ct on ct.CONTRACT_ID = c.ID and ct.CONTRACT_DELETE is null
       join PROPOSAL p on p.ID = ct.PROPOSAL_ID
       join CLIENT cl on cl.ID = ct.CLIENT_ID
       left outer join BANK b on b.CONTRACT_ID = c.ID
       left outer join PLAN_D pd on pd.CONTRACT_ID = c.ID
       left outer join ACCOUNTANCY a on a.CONTRACT_ID = c.ID
       left outer join CONTRACT_EXTRA ce on ce.CONTRACT_ID = c.ID
           where  c.DEPARTMENT_ID_EXECUTE = 13 and (ce.EXECUTE_END>'25.05.2019' or ce.EXECUTE_END is null)  order by c.ID desc


он выдает результат одну строку (допустим одну строку договора).
Есть таблица «ACCOUNTANCY», в которой содержится номер счета по этому договору.
Вот..
С некоторых пор, по одному договору может стало возможным добавлять несколько номеров счетов (просто в «ACCOUNTANCY» одно и то же CONTRACT_ID ссылка на договор). Следовательно, у меня уже этот запрос выдает несколько одинаковых строк договоров, что не есть хорошо…

Вопрос можно ли как-то в
left outer join ACCOUNTANCY a on a.CONTRACT_ID = c.ID

ограничить выборку до одной строки, или мне в «ACCOUNTANCY» делать дополнительное поле, например, «NUMBER_BASE» (основной счет) и в одном из строк с номерами счетов например ставить в нем значение «1», а во всех других «0», если в одном договоре много счетов и тогда
left outer join ACCOUNTANCY a on a.CONTRACT_ID = c.ID and NUMBER_BASE=1

Заранее спасибо за ответ

Viewing all articles
Browse latest Browse all 1677

Trending Articles