|
Второй час, после выходных, туплю с запросом. 🠗 (Волшебник 19.04.2021 13:10) | ☑ | ||
---|---|---|---|---|
0
Lama12
19.04.21
✎
13:08
|
Есть таблица
Имя-------------Буква "Первый"--------"А" "Первый"--------"Б" "Второй"--------"В" Вторая таблица Буква "А" "Б" "В" "Г" Нужно получить таблицу в которой будут содержаться все значения из первой колонки первой таблицы, со значением второй колонки которого нет в первой. Результирующая таблица Имя-------------Буква "Первый"--------"В" "Первый"--------"Г" "Второй"--------"А" "Второй"--------"Б" "Второй"--------"Г" Чувствую что должно быть, что-то примитивное, но не могу вспомнить как раньше делал. :-( На всякий случай текст запроса с таблицами из примера
|
|||
1
DTX 4th
19.04.21
✎
13:11
|
Внутреннее соединение по Буква <> Буква?
|
|||
2
Волшебник
19.04.21
✎
13:13
|
ВЫБРАТЬ Имя
ГДЕ НЕ Буква В (ВЫБРАТЬ Буква ИЗ ВтораяТаблица) |
|||
3
Lama12
19.04.21
✎
13:21
|
(2) Не будет работать. Будет пустой результат.
|
|||
4
DTX 4th
19.04.21
✎
13:23
|
(1) + Группировка
|
|||
5
Lama12
19.04.21
✎
13:26
|
(4) Сделал с временными таблицами. Тоже ерунда выходит.
ВЫБРАТЬ "Первый" КАК Имя, "А" КАК Буква ПОМЕСТИТЬ Таблица1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Первый", "Б" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Второй", "В" ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ "А" КАК Буква ПОМЕСТИТЬ Таблица2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Б" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "В" ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Г" ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Таблица1.Имя КАК Имя, Таблица2.Буква КАК Буква ИЗ Таблица1 КАК Таблица1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Таблица2 КАК Таблица2 ПО Таблица1.Буква <> Таблица2.Буква СГРУППИРОВАТЬ ПО Таблица1.Имя, Таблица2.Буква УПОРЯДОЧИТЬ ПО Имя, Буква |
|||
6
Lama12
19.04.21
✎
13:28
|
Стоп. В результирующей таблице первая запись лишняя.
Должно быть так. Имя-------------Буква "Первый"--------"Г" "Второй"--------"А" "Второй"--------"Б" "Второй"--------"Г" |
|||
7
Kassern
19.04.21
✎
13:31
|
(0) Можешь по рабоче-крестьянски сделать. Соединяешь вместе 2 таблицы, у тебя будет 3 колонки (Имя, БукваПервойКолонки, БукваВторойКолонки). А далее в результирующей колонке делаешь отбор БукваПервойКолонки<>БукваВторойКолонки.
|
|||
8
Lama12
19.04.21
✎
13:32
|
Вот когда опишешь вопрос, и решение получается. :-)
Вот получилось. Кривовато конечно, но работает. Всем спасибо.
|
|||
9
Почему 1С
19.04.21
✎
14:14
|
(8) интересно можно ли решить без декартова произведения?
|
|||
10
Почему 1С
19.04.21
✎
14:40
|
(6) Почему Первый В нет, но Второй А,Б есть, странная логика
По моему задача выглядела бы логичнее если бы Первый В была в результате |
|||
11
Lama12
19.04.21
✎
15:03
|
(10) Да, это я уже затупил.
|
|||
12
Lama12
19.04.21
✎
15:04
|
(9) Мне тоже интересно, но поскольку задачка разовая, то и так сойдет. Благо это не в проведение документа нужно :-)
|
|||
13
Почему 1С
19.04.21
✎
15:26
|
(12) Задачка интересная, мне понравилась. Можно на собеседованиях задавать.
Декартово соединение можно заменить на внутреннее, результат тот же. ВЫБРАТЬ Таблица1.Имя, Таблица2.Буква КАК Буква ПОМЕСТИТЬ ВсеСвязи ИЗ Таблица1 КАК Таблица1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Таблица2 КАК Таблица2 ПО Таблица1.Буква <> Таблица2.Буква СГРУППИРОВАТЬ ПО Таблица1.Имя, Таблица2.Буква |
|||
14
Lama12
19.04.21
✎
15:36
|
(13) Спасибо. Так лучше будет.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |