Имя: Пароль:
1C
1С v8
Работа с запросом
0 Обизян
 
14.08.25
15:23
Народ подскажите пжл, как в этой таблице в запросе, оставить только строку у которой статус наценки = 2

Номенклатура    ВидЦеныБазовый    ПроцентНаценки    Цена    СтатусНаценки
Масло моторное    Закупочная    10,01        5 735    1
Масло моторное    Закупочная    11,22        5 735    2
1 Волшебник
 
14.08.25
15:24
ГДЕ СтатусНаценки=2
2 Обизян
 
14.08.25
15:24
сам запрос
ВЫБРАТЬ
    ПроцентНаценкиНоменклатурыДляАгрегаторовСрезПоследних.Номенклатура КАК Номенклатура,
    ПроцентНаценкиНоменклатурыДляАгрегаторовСрезПоследних.ВидЦеныБазовый КАК ВидЦеныБазовый,
    ПроцентНаценкиНоменклатурыДляАгрегаторовСрезПоследних.ПроцентНаценки КАК ПроцентНаценки,
    ВТЦеныЗакупЗавод.Цена КАК Цена,
    ПроцентНаценкиНоменклатурыДляАгрегаторовСрезПоследних.СтатусНаценки    
//ПОМЕСТИТЬ ВТнаценкаАгрегатора
ИЗ
    РегистрСведений.ПроцентНаценкиНоменклатурыДляАгрегаторов.СрезПоследних(
            ,
            Организация = &Организация
                И Агрегатор = &Агрегатор
                И ВидЦены = ЗНАЧЕНИЕ(Справочник.ВидыЦен.Агрегатор)
                И Номенклатура В
                    (ВЫБРАТЬ
                        ВТНоменклатура.Ссылка КАК Ссылка
                    ИЗ
                        ВТНоменклатура КАК ВТНоменклатура)) КАК ПроцентНаценкиНоменклатурыДляАгрегаторовСрезПоследних
        ЛЕВОЕ СОЕДИНЕНИЕ ВТЦеныЗакупЗавод КАК ВТЦеныЗакупЗавод
        ПО ПроцентНаценкиНоменклатурыДляАгрегаторовСрезПоследних.Номенклатура = ВТЦеныЗакупЗавод.Номенклатура
            И ПроцентНаценкиНоменклатурыДляАгрегаторовСрезПоследних.ВидЦеныБазовый = ВТЦеныЗакупЗавод.ВидЦены
3 Обизян
 
14.08.25
15:25
а, блин, важное уточнение, это касается только тех позиции где совпадает номенклатура
если позиция без дублей и со статусом 1 её надо оставить
4 Обизян
 
14.08.25
15:26
Номенклатура    ВидЦеныБазовый    ПроцентНаценки    Цена    СтатусНаценки
Масло моторное    Закупочная    10,01        5 735    1
Масло моторное    Закупочная    11,22        5 735    2
Масло моторное2    Закупочная    10,01        5 735    1
Масло моторное3    Закупочная    10,01        5 735    1
Масло моторное4    Закупочная    11,22        5 735    2

т.е. надо избавиться только от первой строки
5 Волшебник
 
14.08.25
15:28
ВЫБРАТЬ Номенклатура, МАКСИМУМ(СтатусНаценки) КАК МаксСтатусНаценки
ПОМЕСТИТЬ максСтатусыНаценки
ИЗ ...
СГРУППИРОВАТЬ ПО Номенклатура


потом
ВНУТРЕННЕЕ СОЕДИНЕНИЕ максСтатусыНаценки
ПО Номенклатура = максСтатусыНаценки.Номенклатура и Статус = максСтатусыНаценки.МаксСтатусНаценки
6 Обизян
 
14.08.25
15:32
а таким образом разве не останутся строки с наценкой 2?
7 Обизян
 
14.08.25
15:34
ох, блин, точно же, спасибо!
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший