Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2019, 06:34   #1
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию [SQL] Проблема с запросом

Доброе время суток форумчане,
есть 2 таблицы (CROSS_T и PLAN_D) (см. рис.) и сводная view по договорам.
У меня не получается из этих двух таблиц получить результирующую, а именно:
получить все уникальные "CONTRACT_ID" из "CROSS_T" с номерами договоров "NUMBER_CONTRACT" из "PLAN_D" по полю "PROPOSAL_ID".
Т.е.
В "CROSS_T" есть разные значения "CONTRACT_ID", все они имеют объединение полем "PROPOSAL_ID".
1) В результате должен быть результат из 2 полей (ID договора и его номер).

Код:
"CONTRACT_ID" "NUMBER_CONTRACT"  
    45           123/15-19 
    47           бп1/47-19  
    48           бп1/47-19  
    49           бп1/47-19 
    50           бп1/47-19
2) есть еще сводная view по договорам

Код:
AS
select
c.ID, ct.CLIENT_ID, cl.NAME_ORGANIZATION_FULL as NAME_ORGANIZATION_FULL, cl.TYPE_NP || cl.CITY as NP,
list(distinct(sw.NAME_SORT_WORK), ', ') as LIST_SORT_WORK,
count(distinct(sw.NAME_SORT_WORK)) as COUNT_SORT_WORK,
list(distinct(dp.NAME_SHORT), ', ') as LIST_DEPARTMENT_EXECUTE,
count(distinct(n.DEPARTMENT_ID_EXECUTE)) as COUNT_DEPARTMENT_EXECUTE,
list(distinct(p.NUMBER_IN), ', ') as LIST_PROPOSAL_NUMBER_IN,
list(distinct(p.ID), ', ') as LIST_PROPOSAL_ID
from CONTRACT c
  join CROSS_T ct on ct.CONTRACT_ID = c.ID
  join CLIENT cl on ct.CLIENT_ID = cl.ID
  left join NC n on n.CONTRACT_ID = c.ID
  left join DEVICES d on n.DEVICE_ID = d.ID
  left join SORT_WORK sw on d.SORT_WORK_ID = sw.ID
  left join DEPARTMENT dp on dp.ID = n.DEPARTMENT_ID_EXECUTE
  left join PROPOSAL p on p.ID = ct.PROPOSAL_ID
group by c.ID, ct.CLIENT_ID, cl.NAME_ORGANIZATION_FULL, cl.TYPE_NP, cl.CITY
;
Не плохо было бы результат первого вопроса (2 поля) подключить к этой view (где "CONTRACT_ID" (из первого вопроса) = "с.ID" (из второго вопроса)).
P.S. Эта view также имеет "join CROSS_T "

Заранее спасибо.
Изображения
Тип файла: png Untitled.png (41.0 Кб, 113 просмотров)

Последний раз редактировалось KBO; 16.04.2019 в 06:38.
KBO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с SQL-запросом julia9311 Microsoft Office Access 3 10.12.2012 02:27
Проблема с запросом Uh-Oh Microsoft Office Access 19 03.05.2012 19:21
Проблема с запросом! Chemik Microsoft Office Access 1 06.01.2012 15:11
Проблема с SQL запросом Alexsandr БД в Delphi 7 06.07.2011 12:32
Проблема с SQL запросом Bilargo БД в Delphi 4 27.11.2009 19:10