Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 16.04.2019, 07:34   #1
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 422
Репутация: 16
По умолчанию [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 Кб, 0 просмотров)

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с 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 20:10


16:51.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru