Как в запросе получить данные из другого запроса по условию #410741


#0 by Дантес
Всем доброго времени суток. УТ 8.0 Как в запросе получить конкретные данные из другого запроса (результата запроса). Попробую объяснить на примере Допустим есть запрос по номенклатуре (пусть будет справочник) и есть вложенный запрос по скидкам на эту номенклатуру (скидки для формирования цены клиента). Причем скидки могут устанавливаться как на саму номенклатуру, так и на номенклатурную группу. Т.е. в результате запроса по скидкам может быть две записи: 1. скидка по номенклатурной группе 2. скидка по самой номенклатуре Причем приоритетной является скидка по номенклатуре т.е. если сущесвуют оба варианта скидки, то для расчета цены должен браться вариант по номенклатуре. Т.е. имеем Таблица товара: Товар 1   Ном группа 1 Товар 2   Ном группа 2 Товар 3   Ном группа 3 Таблица скидок: Товар 1   30% Товар 2   25% Ном группа 2 30% Ном группа 3 40% Для Товара 1, и Товара 3 скидка вытаскивается замечательно (что понятно), но для Товара 2 скидка должна быть 25%, но максимум что мне удалось получить это оба варианта по Товару 2. Вот пример связи в запросе ПО (ВЫБОР                КОГДА СкидкиКонтрагента.ОбъектСкидки ССЫЛКА Справочник.Номенклатура                ИНАЧЕ ВЫБОР                        КОГДА СкидкиКонтрагента.ОбъектСкидки ССЫЛКА Справочник.НоменклатурныеГруппы Если кто сталкивался с подобной задачей, укажите путь плиз. Заранее благодарю!
#1 by ll13
А если многоуровненная иерархия и у каждой группы своя скидка то как быть ? В кратце: С номенклатурой сделай 2 левых соединения : 1). С таблицей где скидки на номенклатуру 2). С таблицей где скидки на группу В результате получиться таблица Номенклатура, СкидкаНаНоменклатуру, СкидкаНаГруппу Оформи это всё как вложенный запрос, а затем из него выбирай либо одну либо другую скидку.
#2 by 73
Типа так: Выбрать ТТ.Товар, ЕстьNull(ТСТ.Скидка, ЕстьNull(ТСН.Скидка, 0)) как Скидка //может нигде нет Из Товары как ТТ ЛевоеСоединение Скидки Как ТСТ  По ТТ.Товар = ТСТ.Товар ЛевоеСоединение Скидки Как ТСН  По ТТ.НомГруппа = ТСТ.НомГруппа
#3 by 73
Чуть промазал(копипаст хр):  ТТ.Товар, Из Товары как ТТ  ЛевоеСоединение Скидки Как ТСТ   По ТТ.Товар = ТСТ.Товар  ЛевоеСоединение Скидки Как ТСН   По ТТ.НомГруппа = ТСН.НомГруппа
#4 by Дантес
>> А если многоуровненная иерархия и у каждой группы своя скидка то как быть ? Речь не о группе справочника Номенклатура, а об элементе справочника Номенклатурная группа. Никакой иерархии там быть не может, скидка предоставляется на конкретный элемент справочника не являющейся группой.
#5 by Дантес
Спасибо! Все получилось ... далее из полученных вариантов по примеру получил нужную скидку ... еще раз спасибо. Вариант не заработал ... возможно я что-то не так сделал, но результата вообще никакого не выдало. Потом проверю. В любом случае спасибо за участие!
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С