Получение данных из периодического регистра сведений одним запросом #774299


#0 by alexpaiko1
Необходимо реализовать получение одним запросом 2-х последних цен и процента изменения из регистра сведений цены номенклатуры. Записи регистра: 1.     01/10/2011 Номенклатура1 5.00 2.     02/10/2011 Номенклатура1 1.00 3.     12/10/2011 Номенклатура1 2.00 4.     04/10/2011 Номенклатура2 1.00 5.     07/10/2011 Номенклатура2 1.20 6.     13/10/2011 Номенклатура2 5.20 7.     01/01/2011 Номенклатура3 70.00 8.     05/05/2011 Номенклатура3 99.00 9.     01/07/2011 Номенклатура3 70.00 Конечная таблица: №    Номенклатура    Цена предыдущая    Цена текущая    Процент изменения 1    Номенклатура1         1.00         2.00              100% 2    Номенклатура2         1.20         5.20             333.33% 3    Номенклатура3         99.00        70.00            -29.23% Набрал запрос, но не получается вывести предпоследнюю цену.
#1 by asady
используй таблицу РС а не ВТ СрезПоследних
#2 by alexpaiko1
Во втором запросе я использую таблицу РС. Но все равно не получается две последние цены получить
#3 by GROOVY
#4 by alexpaiko1
спасибо
#5 by Ёпрст
во втором запросе делай левое соединение с подзапросом, в котором ищи ( максимум(Период), номенклатура, цена
#6 by alexpaiko1
спасибо
#7 by alexpaiko1
Попробовал. Все равно не получается. Вот текст ВЫБРАТЬ     Товары.Ссылка КАК Ном,
#8 by kittystark
на вскидку как-то так: Т - твоя исходная таблица поместить в ВТ1: Т как Т1 левое соединение Т как Т2 по т1.ном = т2.ном и т1.период >= т2.период сгруппировав по всем полям, в полях добавить КОЛИЧЕСТВО(т2.номенклатура) - это поле будет номер по порядку (НПП) внутри одной номенклатуры поместить в ВТ2: максимум по НПП, сгруппировав ВТ1 по номенклатуре выбрать * из ВТ1 левое соед ВТ2 по вт1.номенклатура = вт2.номенклатура и(вт2.макс_нпп = вт1.нпп или вт2.макс_нпп-1 = вт1.нпп) где не вт2.номенклатура есть null
#9 by Ёпрст
На вот, не совсем оптимально, но и хрен с ним. ЗЫ: ну не сделали коррелированных подзапросов в селекте, приходится через жпо писать ВЫБРАТЬ     10 ОБЪЕДИНИТЬ ВЫБРАТЬ     20 ОБЪЕДИНИТЬ ВЫБРАТЬ     10 ОБЪЕДИНИТЬ ВЫБРАТЬ     20 ОБЪЕДИНИТЬ ВЫБРАТЬ     30 ОБЪЕДИНИТЬ ВЫБРАТЬ     70 ОБЪЕДИНИТЬ ВЫБРАТЬ     99 ОБЪЕДИНИТЬ ВЫБРАТЬ
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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