1С запрос соединение 3х таблиц, две из которых с одинаковым содержанием

1. 20.06.22 15:37 Сейчас в теме
Здравствуйте! Помогите, пожалуйста, начинающему специалисту. Нужно соединить 3 таблицы, загвоздка в том, что 2я и 3я таблицы с одинаковым содержанием (так нужно). Поэтому в результирующей таблице в первой колонке встречаются 4 одинаковые записи, а во 2й и 3й идет чередование записей: результат1 и результат1; результат1 и результат2; результат2 и результат1; результат2 и результат2. А нужно сделать чтобы была одна строка с результат1 и результат2.
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. user1203706 20.06.22 15:40 Сейчас в теме
(1) в подзапросе union all, с наружи group by
3. YuriyKi 20.06.22 17:22 Сейчас в теме
4. YuriyKi 21.06.22 18:24 Сейчас в теме
(2)Прошу прощения, а можно подробнее. Я видимо что то не правильно делаю - у меня все равно получается то же самое:
Запись результат1 и результат1
Запись результат1 и результат2
Запись результат2 и результат1
Запись результат2 и результат2
Значение записей результат не числовое.
5. nomad_irk 60 22.06.22 08:58 Сейчас в теме
(4)Более предметно можете показать исходные таблицы и что должно получится в итоге?
7. YuriyKi 22.06.22 18:10 Сейчас в теме
(5)Прикрепил файл, в нем 3 таблицы: в Ресурсной спецификации, среди прочих есть ДетальХ с индивидуальной характеристикой, так же есть Ресурсные спецификации, которые вообще не содержат ДеталиХ, содержат одну ДетальХ, содержат две одинаковых ДеталиХ и содержат две разных ДеталиХ. Нужно соединить или объединить эти 3 таблицы, так что бы получился результат:
РесСпецификация Характ-каДетали1 Характ-каДетали2
Спецификация1 Характеристика1
Спецификация2 Характеристика2 Характеристика2
Спецификация3 Характеристика3 Характеристика4
Спецификация4 ______________ ______________

Цифры Спецификаций и Характеристик значения не играют, они могут варьироваться и указывают только на то, что они различаются.
Прикрепленные файлы:
Таблица.odg
9. nomad_irk 60 23.06.22 09:20 Сейчас в теме
(7)Еще больше сумбура получилось, ИМХО.

В спецификации указаны выходные детали и их характеристики.
Простой запрос вида:

Выбрать
     ВыходноеИзделие.Ссылка,
     ВыходноеИзделие.Номенклатура,
     ВыходноеИзделие.Характеристика
ИЗ
     Спецификации.ВыходныеИзделия КАК ВыходноеИзделие


Даст вам результат:

Результат


В чем подвох не могу понять:
спецификация может быть на стопицот разных деталей, а нужно разбить на 2 столбца по двум характеристикам, т.е. получить результат вида:

Как должно быть

или что/как?
10. YuriyKi 24.06.22 18:38 Сейчас в теме
(9)Вот полный текст задания.

В базе данных есть заполненная таблица BoMs, в которой имеются колонки product, part и SKU. Необходимо написать запрос, результатом которого будет таблица с колонками product, bumper, rod, mount, eye1, eye2.
В колонку product должны попасть данные из одноимённой колонки таблицы BoMs, но без повторений.
В колонку bumper должны попасть данные из колонки SKU для той строки, в которой указано соответствующее значение product и в колонке part наименование содержит словосочетание "скоба стопорная" или "опора буфера". В таблице BoMs для каждого значения product может быть только одна строка, содержащая одно из данных словосочетаний, но не слова и словосочетания, используемые для других колонок результата запроса.
В колонку rod должны попасть данные из колонки SKU для той строки, в которой указано соответствующее значение product и в колонке part наименование содержит слово "шток". В таблице BoMs для каждого значения product может быть только одна строка, содержащая данное слово, но не слова и словосочетания, используемые для других колонок результата запроса.
В колонку mount должны попасть данные из колонки SKU для той строки, в которой указано соответствующее значение product и в колонке part наименование содержит словосочетание "шток крепления" или "дно". В таблице BoMs для каждого значения product может быть только одна строка, содержащая одно из данных словосочетаний, но не слова и словосочетания, используемые для других колонок результата запроса.
В колонку eye1 должны попасть данные из колонки SKU для одной строки, в которой указано соответствующее значение product и в колонке part наименование содержит слово "проушина". В таблице BoMs для каждого значения product может быть одна или две строки, содержащие данное слово. В колонку eye2 должны попасть данные из колонки SKU для другой строки того же значения product (если есть), у которой в колонке part наименование содержит слово "проушина".

2 последние колонки содержат одинаковые детали. Как я уже и писал: изделие может не содержать этих деталей, может содержать одну, две одинаковых или две разных. Поэтому при составлении запроса, в этих 2х колонка наименование деталей просто чередуется, а должна быть одна уникальная запись:

eye1 eye2
проушина1 проушина2

А не:
eye1 eye2
проушина1 проушина2
проушина2 проушина1
проушина1 проушина1
проушина2 проушина2
11. YuriyKi 24.06.22 18:39 Сейчас в теме
(10)Первые колонки я опустил, потому что с ними проблем не возникло.
12. nomad_irk 60 24.06.22 23:24 Сейчас в теме
(11)опять же: если существует только два значения - Проушина1 и Проушина2, то решение может быть и через агрегирующие функции Минимум и Максимум, но придется сделать отдельную временную таблицу:

Выбрать
   SKU,
   Product,
   Part,
   Минимум(eye1) как eye1,
   максимум(eye2) как eye2
ПОМЕСТИТЬ ВТ_Проушины
ИЗ
   ТаблицаBoMs
СГРУППИРОВАТЬ ПО
   SKU,
   Product,
   Part
Показать
13. Vitaly1C8 24.06.22 23:32 Сейчас в теме
(10)
SELECT
BoMs.product , 
SKU КАК bumper ,
NULL КАК rod ,
NULL КАК mount 
WHERE part = "скоба стопорная" или part = "опора буфера"

UNI ON ALL

SELECT
BoMs.product , 
NULL КАК bumper ,
SKU КАК rod ,
NULL КАК mount 
WHERE part ПОДОБНО "%шток%"

UNION ALL

SEL ECT
BoMs.product , 
NULL КАК bumper ,
NULL КАК rod ,
SKU КАК mount 
WHERE part = "шток крепления" или part = "дно"

// последний кусок напиши сам для тренировки
Показать
6. ignorant 22.06.22 16:31 Сейчас в теме
(4) Или текст запроса. можно неполный, с полями из 3-х разных таблиц к качестве примера.
8. YuriyKi 22.06.22 18:12 Сейчас в теме
Прошу прощения, вставит скрин не получилось(((
Оставьте свое сообщение
Вакансии
Консультант-аналитик 1С
Москва
зарплата от 120 000 руб. до 190 000 руб.
Полный день

Ведущий аналитик-разработчик 1С
Москва
зарплата от 230 000 руб. до 270 000 руб.
Полный день

1С:Эксперт по производительности
Москва
зарплата от 400 000 руб. до 950 000 руб.
Полный день

Ведущий аналитик 1С (ERP, ЗУП)
Краснодар
зарплата от 150 000 руб.
Полный день

Разработчик 1С
Тверь
зарплата от 150 000 руб. до 250 000 руб.
Полный день