|
Соединить реквизиты из двух справочников |
☑ |
0
dubolom
21.07.21
✎
16:19
|
Есть два справочника, условно говоря, первый:
Иванов 3
Васильев 8
Петрова 8
Второй:
Иванов Красный
Васильев Синий
Васильев Жёлтый
Требуется получить все возможные сочетания чисел и цветов для каждой фамилии, в данном случае:
Иванов 3 Красный
Васильев 8 Синий
Васильев 8 Жёлтый
Не подскажете, как это реализовать? Всю голову уже сломал.
|
|
1
ДенисЧ
21.07.21
✎
16:21
|
выбрать спр1.поле1, спр1.Поле2, спр2.поле2
из справочник.СПравочник1 как спр1
левое соединение Справочник.Справочник как спр2
по спр1.Поле1 = спр2.поле1
|
|
2
ДядяМитяй
21.07.21
✎
16:24
|
(1) Этак у тебя Петрова туда попадет. А Петрову ТС не любит. Скорее Внутренне соединение.
|
|
3
ДенисЧ
21.07.21
✎
16:26
|
(2) гед спр1.Поле <> Петрова.
|
|
4
ДядяМитяй
21.07.21
✎
16:26
|
В примере ненакрашеная Петрова не достойна быть в результате запроса
|
|
5
Жан Пердежон
21.07.21
✎
16:31
|
(0) звучит как вопрос собеседования для джуна с нулевым опытом (проверить, что хоть что-то знает)
|
|
6
Said_We
21.07.21
✎
16:32
|
(5) Неа - это как раз троллинг.
Он только сегодня на подобные вопросы и сложнее сам отвечал в ветках.
(0) Так зачем активизировать активность на форуме?
|
|
7
ДядяМитяй
21.07.21
✎
16:32
|
(5) если на собеседовании так мутно сформулируют задание - уходить без комментариев
|
|
8
Said_We
21.07.21
✎
16:35
|
(1) Можно без соединения.
Примерно как тут:
Запрос по характеристикам
|
|
9
Said_We
21.07.21
✎
16:38
|
(8) Не... тут полное соединение - бывают повторения у таблиц:
...
Васильев Синий
Васильев Жёлтый
...
|
|
10
ДядяМитяй
21.07.21
✎
16:41
|
А если бы это был заказчик - я бы заставил его не только написать на бумаге что делать с Петровой - но и что делать с зеленым Козодоевым без нумера. Самому догадываться - это обязательно кончится "но это же очевидно - с номером не надо, а с цветом надо".
И КРОВЬЮ расписаться
|
|
11
Smallrat
21.07.21
✎
16:53
|
(0)
ВЫБРАТЬ "Иванов" КАК Фамилия, 3 КАК Число ПОМЕСТИТЬ Спр1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Васильев", 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Петрова", 8
;
ВЫБРАТЬ "Иванов" КАК Фамилия, "Красный" КАК Цвет ПОМЕСТИТЬ Спр2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Васильев", "Синий" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Васильев", "Желтый"
;
ВЫБРАТЬ Спр1.Фамилия ПОМЕСТИТЬ ВТ ИЗ Спр1 КАК Спр1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Спр2 КАК Спр2 ПО Спр1.Фамилия = Спр2.Фамилия
;
ВЫБРАТЬ РАЗЛИЧНЫЕ ВТ.Фамилия, Спр1.Число, Спр2.Цвет ИЗ ВТ КАК ВТ ЛЕВОЕ СОЕДИНЕНИЕ Спр1 КАК Спр1 ПО ВТ.Фамилия = Спр1.Фамилия ЛЕВОЕ СОЕДИНЕНИЕ Спр2 КАК Спр2 ПО ВТ.Фамилия = Спр2.Фамилия
|
|
12
Smallrat
21.07.21
✎
16:56
|
+(11) РАЗЛИЧНЫЕ надо в 3ий запрос, а не последний
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший