Вход | Регистрация
 

Помогить объединить таблицы в запросе

Помогить объединить таблицы в запросе
Я
   St-Anger
 
13.03.19 - 17:56
Есть акционные расходные накладные, а есть основные (которые стали основанием для начисления акционных). Привязка сделана через регистр сведений.
Необходимо написать отчет, в котором бы отображались акционные накладные, напротив них основные (может быть одна или больше), а так же своя номенклатура под каждой накладной и количество.
Не могу понять как в запросе все это объединить/соединить.

Как хотелось бы сделать:
https://cdn1.savepice.ru/uploads/2019/3/13/079e9f581ba2c322330dd763a11b3eb5-full.jpg
 
 
   formista2000
 
1 - 13.03.19 - 18:01
СОЕДИНЕНИЕ
   Вафель
 
2 - 13.03.19 - 18:06
соединение по документу-основанию и номеру строки
   St-Anger
 
3 - 13.03.19 - 18:07
Количество позиций может быть везде разным. Если по номеру строки - не все записи будут попадать
   Rovan
 
4 - 13.03.19 - 18:12
(0) по описанию напоминает отчет "Расчетный листок" в ЗУП - слева начисления, справа удержания
   Greeen
 
5 - 13.03.19 - 18:16
Аукционные, к ним полное соединение же по Основанию и номеру строки
   Вафель
 
6 - 13.03.19 - 18:24
(4) но лучше не смотреть как строится расчетный листок. больше нервов сбережешь
   St-Anger
 
7 - 13.03.19 - 18:30
(6) Уже посмотрел и с дрожью закрыл
Вот мой запрос

ВЫБРАТЬ
    ВложенныйЗапрос.АкционныйДокумент,
    РеализацияТоваровУслугТовары.Номенклатура КАК АкционныйНоменклатура,
    РеализацияТоваровУслугТовары.Количество КАК АкционныйКоличество,
    РеализацияТоваровУслугТовары.НомерСтроки
ПОМЕСТИТЬ Акция
ИЗ
    (ВЫБРАТЬ
        впПривязкаАкционныхДокументов.АкционныйДокумент.Ссылка КАК АкционныйДокумент
    ИЗ
        РегистрСведений.впПривязкаАкционныхДокументов КАК впПривязкаАкционныхДокументов
    ГДЕ
        впПривязкаАкционныхДокументов.АкционныйДокумент.Проведен
    
    СГРУППИРОВАТЬ ПО
        впПривязкаАкционныхДокументов.АкционныйДокумент.Ссылка) КАК ВложенныйЗапрос
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        ПО ВложенныйЗапрос.АкционныйДокумент = РеализацияТоваровУслугТовары.Ссылка
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    впПривязкаАкционныхДокументов.АкционныйДокумент,
    РеализацияТоваровУслугТовары.Ссылка КАК ОсновнойДокумент,
    РеализацияТоваровУслугТовары.Номенклатура КАК ОсновнойНоменклатура,
    РеализацияТоваровУслугТовары.Количество КАК ОсновнойКоличество,
    РеализацияТоваровУслугТовары.НомерСтроки
ПОМЕСТИТЬ Основной
ИЗ
    РегистрСведений.впПривязкаАкционныхДокументов КАК впПривязкаАкционныхДокументов
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        ПО впПривязкаАкционныхДокументов.ОсновнойДокумент = РеализацияТоваровУслугТовары.Ссылка
ГДЕ
    РеализацияТоваровУслугТовары.Ссылка.Проведен
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    Акция.АкционныйДокумент,
    Акция.АкционныйНоменклатура,
    Акция.АкционныйКоличество,
    Основной.ОсновнойДокумент,
    Основной.ОсновнойНоменклатура,
    Основной.ОсновнойКоличество
ИЗ
    Акция КАК Акция
        ПОЛНОЕ СОЕДИНЕНИЕ Основной КАК Основной
        ПО Акция.АкционныйДокумент = Основной.АкционныйДокумент
            И Акция.НомерСтроки = Основной.НомерСтроки
   Вафель
 
8 - 13.03.19 - 18:31
зачем ссылки группировать по ссылке?
   St-Anger
 
9 - 13.03.19 - 18:32
(8) да это я забыл убрать
   Вафель
 
10 - 13.03.19 - 18:33
но конечно же г-но полнейший
 
 Рекламное место пустует
   St-Anger
 
11 - 13.03.19 - 18:33
(8) пробовал разные варианты, и забыл убрать. На результат все равно не влияет
   Вафель
 
12 - 13.03.19 - 18:35
а количество основных накладных не известно?
   St-Anger
 
13 - 13.03.19 - 18:36
(12) нет, чаще всего будет одна но может и больше
   St-Anger
 
14 - 13.03.19 - 18:39
Вот в таком варианте запроса, если больше одной основной накладной, то акционные задваиваются + еще если соединять по номеру строки то теряются записи ( основной или акционной номенклатуры,смотря где больше).
   breezee
 
15 - 13.03.19 - 18:57
(14) 1)Перепишите на временных таблицах. Так читать сложно, на вложенных запросах (да, иногда это не оптимально, но в моем опыте в 100% работает быстрее с временными таблицами)
2)Задваиваются, наверное, потому что у вас 2 реализации по одному документу или еще почему, при левом соединении это нормально.
Переделайте на временные таблицы и выложите сюда, если проблема осталась, так быстрее помогут
   Sapiens_bru
 
16 - 13.03.19 - 20:12
(0) Готовим таблицу товаров акционных (А) и основных (О) документов, затем объединяем их и полученное объединение сортируем.
Из таблицы (А) брать:
1) Момент времени акционного документа
2) Пустую дату
3) Номер строки товара
4) Представление акционного документа
5) Представление товара
Из таблицы (О) брать:
1) Момент времени связанного акционного документа 
2) Момент времени основного документа
3) Номер строки товара
4) Представление основного документа
5) Представление товара
Полученный результат сортировать по полям 1, 2, 3

В результате будет таблица в которой блоками будет расположены сначала строки первого акционного документа, затем первого связанного с ним основного, затем второго связанного с ним основного, затем второго акционного итд. То есть нужная таблица но в развороте.
Остаётся свернуть ее в табличный документ последовательно читая и Выводя/Присоединяя секции.
   St-Anger
 
17 - 14.03.19 - 11:26
(16) Смысел понятен. Буду пробовать. Спасибо!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует