С Новым годом! Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
74 / 6 / 0
Регистрация: 24.01.2020
Сообщений: 159

Сложный запрос

13.03.2020, 06:26. Показов 452. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не получается реализовать запрос.
По идеи я обращаюсь к таблице с консолид.лицами, которые являются физ.лицами и юр.лицами. Есть разные комбинации.

сейчас прип запросе выводятся необходимые мне люди, однако надо выбрать только первых. Например, если комбинация юр+физ, то брать юр. Если физ+физ, то просто первого физ и тоже самое с юр+юр.

По идеи у них уникальные objectId, но не получается выбрать первого, допустим из трех.

PostAddrKind - номера вида адреса (почтовый или юридический)
ObjectKindID - показывает кто челок, физ или юр лицо
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
SELECT cp.Name, cpm.ObjectID, cpm.ObjectKindID, cpm.ConsolidatedPersonsID, pa.PostAddrKindID, pa.PostIndex,
  ISNULL('г. ' + region.Name, '') +
  ISNULL(', район ' + microdistrict.Name, '') + 
  ISNULL(ISNULL(', ' + LEFT(streetkind.Format, LEN(streetkind.Format) - 3), '') + ' ' + street.Name, '') + 
  ISNULL(', д. ' + pa.House, '') + ISNULL(', строение ' + pa.Building, '') + 
  ISNULL(', корпус ' + pa.Corpus, '') + ISNULL(', кв. ' + pa.Flat, '') + 
  ISNULL(', место расположения: ' + pa.Description, '') AS fullAdress
  FROM SubjectConsolidatedPersons cp
  JOIN SubjectConsolidatedPersonsMembers cpm
  ON cp.OID=cpm.ConsolidatedPersonsID
  JOIN PostAddr pa 
  ON cpm.ObjectID=pa.ObjectID  (Здесь нужно сделать опять SELECT top,
 но я запуталась и то что пишу не срабатывает, а пишу 
" on pa.ObjectID=(SELECT TOP (1) cpm.ObjectID FROM
                         SubjectConsolidatedPersonsMembers cpm)"
 
  AND pa.PostAddrKindID=( SELECT TOP (1) adrKind.OID
                        FROM
                          PostAddr AS adr
                          LEFT OUTER JOIN PostAddrKind AS adrKind
                            ON adr.PostAddrKindID = adrKind.OID
                        WHERE
                          (adr.ObjectID =  cpm.ObjectID )[I][B](здесь тоже нужно будет изменить, но пока не додумалась как)[/B][/I]
                          AND (adr.ObjectKind IN ('000000001852', '000000001850'))
                          AND (adr.CheckAddr = 1
                          OR adr.CheckAddr IS NULL)
                        ORDER BY
                          adrKind.Name )
LEFT OUTER JOIN AddrMicrodistrict AS microdistrict ON pa.MicrodistrictID = microdistrict.OID LEFT OUTER JOIN
     AddrStreet AS street ON pa.StreetID = street.OID LEFT OUTER JOIN
     AddrStreetKind AS streetkind ON street.StreetKindID = streetkind.OID LEFT OUTER JOIN
      AddrRegion region ON pa.RegionID = region.OID
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.03.2020, 06:26
Ответы с готовыми решениями:

Сложный запрос
SELECT * FROM facts WHERE DATE(date) BETWEEN date1 AND date2 Использую вот такой запрос ,но помимо выборки по дате нужно выбирать еще по...

Сложный запрос
Сгруппировать по keyGroup. Если в группе больше одной записи Если в группе есть хоть одна запись у которой isFirst = 1, получить...

Сложный запрос
Всем доброго времени суток. Всех милых дам с 8 марта!:rose: И так у меня БД: Реляционная модель: Нужно получить...

1
5953 / 4529 / 1094
Регистрация: 29.08.2013
Сообщений: 28,122
Записей в блоге: 3
13.03.2020, 09:31
а может тебе пронумеровать строки в пределах 1 лица и там уже выбрать строки с номером 1?

не очень понятно зачем ты эту простыню тут выкладываешь. сделай пример без лишнего кода и спроси что тебе нужно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.03.2020, 09:31
Помогаю со студенческими работами здесь

Сложный запрос к БД
Есть БД, в ней таблица main с полями ip(адрес абонента),datetime(время запроса),size(размер ответа в байтах). Внимание!!!! Необходимо...

Сложный запрос
Здравствуйте!у меня есть БД: Успеваемость(#Nз, #ИдКурса, #Семестр, #УчНед, #ВидОтчета, Оценка) ОтчетГруппы(#ИдКурса, #Nгр, #УчНед,...

сложный запрос
Есть таблица А: id | date | number, id - int date - datetime number - int, 0, 1 или 2 Необходим запрос в табл А, где...

Сложный запрос
Всем привет! (пример) Есть 3 таблицы:Users, Auto, Motorcycles. (Они связаны через ключевое поле userID.) Мне нужно вывести...

Сложный запрос
Доброго времени суток! Знатоки SQL подскажите пожалуйста как привести в рабочий вид мой запрос: DECLARE @data AS XML, ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru