Объединение 2 таблиц с одной одинаковой колонкой

1. UPP_ZUP 06.03.24 15:25 Сейчас в теме
Никак не могу придумать, как вывести в одну строку данные из двух таблиц с колонками А,Б,В и А,Б,Г

А и Б - это одинаковые данные, и только отличие в колонках В и Г.

Сколько ни пробую, получается всё равно две строки:
А,Б, В, -
А,Б, -, Г

А как бы вывести всего одну строку А,Б,В,Г?

П.С. это нужно в запросе или СКД сделать
По теме из базы знаний
Найденные решения
5. nomad_irk 76 06.03.24 15:50 Сейчас в теме
(3)использовать объединение таблиц:

Выбрать 
    Поле1,
    Поле2
    Поле3,
    "-"
Поместить ВТ
ИЗ
    Т1

Объединить все

Выбрать 
    Поле1,
    Поле2
    "-",
    Поле3
ИЗ
    Т2
;
ВЫбрать
     Поле1,
     Поле2,
     максимум(Поле3),
     Максимум(Поле4)
ИЗ
     ВТ
Сгруппировать по
     Поле1,
     Поле2
Показать

Агрегирующие функции использовать подходящие под реалии.
8. Said-We 06.03.24 16:58 Сейчас в теме
(7) Добавьте номер по порядку НПП в каждой таблице по сочетанию значений А и Б его в группированное поле рядом с А и Б, НПП.
А,Б,1,В1,Null
А,Б,2,В2,Null
А,Б,1,Null,Г1
А,Б,2,Null,Г2

На выходе будет:
А,Б,1,В1,Г1
А,Б,2,В2,Г2

НПП можете не выводить - это служебное временное поле.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 06.03.24 15:32 Сейчас в теме
(1)в первом приближении:

МаксИнд1 = ТЗ1.Количество()-1;
МаксИнд2 = ТЗ2.Количество()-1;
МаксИндекс = макс(МаксИнд1, МаксИнд2);

Для ИндексСтроки = 0 По МаксИндекс Цикл
       Если ИндексСтроки <= МаксИнд1 Тогда
           А = ТЗ1[ИндексСтроки].А;
       Иначе
           А = "-";
       КонецЕсли;
       Если ИндексСтроки <= МаксИнд1 Тогда
           Б = ТЗ1[ИндексСтроки].Б;
       Иначе
           Б = "-";
       КонецЕсли;
       Если ИндексСтроки <= МаксИнд1 Тогда
           В = ТЗ1[ИндексСтроки].В;
       Иначе
           В = "-";
       КонецЕсли;
       Если ИндексСтроки <= МаксИнд2 Тогда
           Г = ТЗ2[ИндексСтроки].Г;
       Иначе
           Г = "-";
       КонецЕсли;
КонецЦикла
Показать
3. UPP_ZUP 06.03.24 15:43 Сейчас в теме
(2) Извиняюсь, сразу не указал, что это нужно именно в запросе сделать.
5. nomad_irk 76 06.03.24 15:50 Сейчас в теме
(3)использовать объединение таблиц:

Выбрать 
    Поле1,
    Поле2
    Поле3,
    "-"
Поместить ВТ
ИЗ
    Т1

Объединить все

Выбрать 
    Поле1,
    Поле2
    "-",
    Поле3
ИЗ
    Т2
;
ВЫбрать
     Поле1,
     Поле2,
     максимум(Поле3),
     Максимум(Поле4)
ИЗ
     ВТ
Сгруппировать по
     Поле1,
     Поле2
Показать

Агрегирующие функции использовать подходящие под реалии.
4. Said-We 06.03.24 15:46 Сейчас в теме
(3) Ещё проще. Объединить и свернуть. По колонкам А и Б сгруппировать, а по колонка В и Г взять максимум.
6. Said-We 06.03.24 16:07 Сейчас в теме
(3) Вместо "-" из примера в {4} смело рисуйте NULL.
7. UPP_ZUP 06.03.24 16:32 Сейчас в теме
(5) (6) Спасибо, логику понял. Получилась одна строка.

Осталось разобраться, чтобы в варианте из 4 строк:
А,Б,В1,Null
А,Б,В2,Null
А,Б,Null,Г1
А,Б,Null,Г2

получилось две строки А,Б,В1,Г1 и А,Б,В2,Г2
8. Said-We 06.03.24 16:58 Сейчас в теме
(7) Добавьте номер по порядку НПП в каждой таблице по сочетанию значений А и Б его в группированное поле рядом с А и Б, НПП.
А,Б,1,В1,Null
А,Б,2,В2,Null
А,Б,1,Null,Г1
А,Б,2,Null,Г2

На выходе будет:
А,Б,1,В1,Г1
А,Б,2,В2,Г2

НПП можете не выводить - это служебное временное поле.
9. UPP_ZUP 07.03.24 09:02 Сейчас в теме
Спасибо, всё получилось
Оставьте свое сообщение

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