Соединение таблицы по условию в запросе

1. Intercititude 27.09.23 18:26 Сейчас в теме
Добрый вечер, коллеги.

Нужно в одном запросе соединить одну таблицу левым с другой исходя из условия. Не могу придумать как это правильнее реализовать через is null без объединения и временных таблиц.

Пример:
Регистр сведении подчиненный док. Измерение Город. Ресурс Дата
Два документа сделали две записи:
Регистратор Город Дата
ДОК1 МСК 24.09.23
ДОК2 ПустаяСсылка 25.09.23

На входе таблица1 с полем Город:
Город
МСК
ПустаяСсылка

Как мне соединить таблицу1 одновременно и по городу и по пустой ссылке, чтобы для
МСК вывелось 24.09.23, а для пустой ссылки 25.09.23

Тоесть если я сделаю ЛЕВОЕ По Таблица1.Город = Регистр.Город не строка с пустой ссылкой
По теме из базы знаний
Найденные решения
12. Sashares 33 28.09.23 00:58 Сейчас в теме
(1)
Два документа сделали две записи:
Регистратор Город Дата
ДОК1 МСК 24.09.23
ДОК2 ПустаяСсылка 25.09.23

На входе таблица1 с полем Город:
Город
МСК
ПустаяСсылка

Как мне соединить таблицу1 одновременно и по городу и по пустой ссылке, чтобы для
МСК вывелось 24.09.23, а для пустой ссылки 25.09.23

Тоесть если я сделаю ЛЕВОЕ По Таблица1.Город = Регистр.Город не строка с пустой ссылкой
Показать


Просто соединить левым соединением по городу.
Без всяких доп. условий.
Все.

Для МСК будет 24.09.23
Для пустой ссылки будет 25.09.23
Intercititude; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1936667 27.09.23 18:44 Сейчас в теме
(1) Ничего не понятно, но весьма интересно.
Текст запроса, который у тебя не работает, мы должны написать сами?
4. Intercititude 27.09.23 18:56 Сейчас в теме
(2) Проще
Как сделать соединение таблиц по разным полям в зависимости от условии в одном подзапросе?
3. DesertPunk 27.09.23 18:50 Сейчас в теме
(1) Не очень понятно почему именно ЛЕВОЕ
ВЫБРАТЬ
	РегистрСведений.Регистратор КАК Регистратор,
	РегистрСведений.Город КАК Город,
	РегистрСведений.Дата КАК Дата
ИЗ
	РегистрСведений КАК РегистрСведений
ГДЕ
	НЕ РегистрСведений.Город ЕСТЬ NULL

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	РегистрСведений.Регистратор,
	РегистрСведений.Город,
	РегистрСведений.Дата
ИЗ
	РегистрСведений КАК РегистрСведений
ГДЕ
	РегистрСведений.Город ЕСТЬ NULL
УПОРЯДОЧИТЬ ПО
	Дата
Показать
5. Intercititude 27.09.23 18:57 Сейчас в теме
(3) Чтобы можно было в одном подзапросе обойти через есть null как то. Объединение не подходит.
12. Sashares 33 28.09.23 00:58 Сейчас в теме
(1)
Два документа сделали две записи:
Регистратор Город Дата
ДОК1 МСК 24.09.23
ДОК2 ПустаяСсылка 25.09.23

На входе таблица1 с полем Город:
Город
МСК
ПустаяСсылка

Как мне соединить таблицу1 одновременно и по городу и по пустой ссылке, чтобы для
МСК вывелось 24.09.23, а для пустой ссылки 25.09.23

Тоесть если я сделаю ЛЕВОЕ По Таблица1.Город = Регистр.Город не строка с пустой ссылкой
Показать


Просто соединить левым соединением по городу.
Без всяких доп. условий.
Все.

Для МСК будет 24.09.23
Для пустой ссылки будет 25.09.23
Intercititude; +1 Ответить
14. Intercititude 28.09.23 14:40 Сейчас в теме
(8) Да, так и получилось. Сперва соединиться по городу левым, потом с этой же таблицой по пустой ссылке и в полях сделать естьnull[таблица1.Дата,Таблица2.Дата)
13. Gerts 12 28.09.23 09:11 Сейчас в теме
(1)Т1
Левое Соединение Т2
По (Т1.Город = Т2.Город
ИЛИ Т1.Город = &ПустаяСсылка)
6. Dr.HiHi 2 27.09.23 19:13 Сейчас в теме
а что мешает использовать "или"??
таблица1
левое соединение таблица2
по таблица1.поле1 = таблица2.поле1
или таблица2.поле1 = пустое значение
7. Intercititude 27.09.23 19:20 Сейчас в теме
(6) Будут дубли где город МСК
8. Dr.HiHi 2 27.09.23 19:27 Сейчас в теме
(7) какая постановка - такой и ответ))))
ничего не понятно по вопросу
судя по данным, то просто по городу и все будет норм... в чем проблема не понимаю
что в одной таблице есть пустой город, что в другой есть пустой и они соединяться %))
9. Intercititude 27.09.23 19:31 Сейчас в теме
(8) Да, извиняюсь. Вечер после работы сказывается :) Писал в спешке

Нужно получить из регистра ещё данные и по пустому городу и по МСК. То есть две записи.
Если соединиться просто по городу, будет одна запись а по пустому будет null
10. Dr.HiHi 2 27.09.23 19:34 Сейчас в теме
(9) буду угадывать
если через объединить не устраивает, то тогда через полное соединение
выбрать естьnull(таблица1.поле1, таблица2.поле1)
из таблица1
полное соединение таблица2
по таблица1.поле1 = таблица2.поле1
11. user1936667 27.09.23 20:07 Сейчас в теме
(9) Откуда у тебя NULL берется?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот