Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Виснет запрос при выполнении

Штука такая , стандартный отчет СЗВ-Стаж в ЗКБУ 1 виснет при выполнении запроса , база файловая
непонятно как отладить его , проблема в том что в параметрах массив из 1000 физлиц , в консоли подобрать их не представляется возможным
непойму как понять суть ошибки
Ответ: () на управляемых в отладке можно записать в файл структуру с параметрами запроса
а в консоль потом загрузить их
Вопрос: Как протестировать выполнение запроса на возврат определенных данных?

Здравствуйте,
Есть шаблон договора с клиентом. В шаблоне есть переменные, значение которых возвращается в результате выполнения запроса, например:

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


В результате выполнения этого запроса вернется значение Строка.ДокументСерия.

Мне нужно составить аналогичный запрос, на возврат других данных, но так как я не владею синтаксисом этого языка, то мне нужен инструмент для моментального тестирования, как в mssql или msaccess можно создать запрос и тут же его выполнить, типо командной строки. Где взять этот инструмент?
Ответ:
Это называется консоль запросов. Поищите либо на форуме, либо в инете
Вопрос: Вопрос по группировкам в запросе

При написании запроса возникла проблема с обходом по группировкам...после выполнения запроса видна только одна группировка, подскажите плз кто знает или помнит с чем это связано..может это просто глюк 7-ки при работе с запросами

сам запрос, сделанный через конструктор...
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)

    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Без итогов;
    |ПродажаСоСклада = Документ.ПродажаСоСклада.ТекущийДокумент;
    |Покупатель = Документ.ПродажаСоСклада.Покупатель;
    |Товар = Документ.ПродажаСоСклада.Товар;
    |Колво = Документ.ПродажаСоСклада.Колво;
    |СуммаСоСкидкой = Документ.ПродажаСоСклада.СуммаСоСкидкой;
    |Функция КолвоСумма = Сумма(Колво);
    |Функция ВсегоСумма = Сумма(СуммаСоСкидкой);
    |Группировка Покупатель;
    |Группировка Товар без упорядочивания без групп;        
    |"//}}ЗАПРОС

    ;
    // Если ошибка в запросе, то выход из процедуры

    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;    
    
    Пока Запрос.Группировка() = 1 Цикл
        Таб.ВывестиСекцию("Покуп");
         Пока Запрос.Группировка() = 1 Цикл            
            Таб.ВывестиСекцию("Товар");    
        КонецЦикла;
    КонецЦикла;

так вот при выполнении не происходит обход по группировкам, хотя данные выбраны, но почему то 1с-ка видит только одну группировку по "Товар". Т.е. если я пишу Пока Запрос.Группировка() = 1 Цикл тогда все работает но у меня группировка идет только по товарам. При чем пытался другие виды группировок указать, например по документу, все равно видит только одну группировку по товару и все.
Помню давно еще возникала такая проблема, а вот как ее решали уже не помню:)..может выгружали запрос в таблицу и потом делали обход, а может есть какой нюанс.
Заранее благодарен
Ответ: () Спасибо большое, я уже и сам допер, посмотрев что может быть лишним в запросе и почитав что это может значить:)
Просто когда постоянно с чем то работаешь, то концентрация внимания выше на всякие мелочи и нюансы, а так забывается...
Вопрос: + MS SQL Server: Загрузка сервера при выполнении запроса

Как можно выполнить запрос таким образом, чтобы это минимально отражалось на скорости работы других пользователей? Лабаю сложный аналитический отчёт на рабочей базе (не спрашивайте, так надо), и при выполнении сложного запроса сильно тормозится работа пользователей. Можно ли как-то снизить приоритет выполнения моего запроса? Пусть он работает дольше, но не тормозит работу пользователей. Реально такое?
Ответ: Кстати, интересная тема - управления ресурсами скуля из 1С. Запросы действительно *могут* быть долгими и ресурсоемкими. Пусть это будет не отчет, а рег. задание. Тот же расчет себестоимости, например. ЕМНИП, в последних версиях платформы появилась возможность прикрепить юзера к рабочему процессу. А значит, теоретически можно задействовать Resource Governor для всех соединений этого процесса. Если разработчики платформы подсуетятся и добавят поддержку. А может, уже? Есть кто в теме? (Особенно к ежикам вопрос :)
Вопрос: Неоптимальный запрос в динамическом списке

В допиленой есть динамический список. Где три раза используется конструкция:

Если запрос содержит соединения с подзапросами, то это может привести к следующим негативным последствиям:

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

Так и есть. Тормозит через раз. Переместить подзапросы во временные таблицы не получается так как стоит режим совместимости с 8.2. Там такого сделать нельзя?

Какой костыль можно приделать чтобы быстрей работало?
Ответ:
Да там вообще запрос веселый.
Вопрос: Запрос. Оператор В. Временная таблица

Доброго времени суток!
Почему следующий запрос ничего не возвращает?
"ВЫБРАТЬ
                   |    Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо
                   |ПОМЕСТИТЬ ФизЛица
                   |ИЗ
                   |    Справочник.Сотрудники КАК Сотрудники
                   |ГДЕ
                   |    Сотрудники.Ссылка В(&МассивОбъектов)
                   |
                   |ИНДЕКСИРОВАТЬ ПО
                   |    ФизическоеЛицо
                   |;
                   |
                   ////////////////////////////////////////////////////////////////////////////////

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

Запрос создаю в типовой ЗУП редакция 3.1. Платформа 8.3.10.2580. Создаю временную таблицу, так как тип переменной МассивОбъектов массив из элементов типа СправочникСсылка.Сотрудники, а регистр содержит измерение типа СправочникСсылка.ФизическиеЛица.

Если в переменную поместить массив из элементов типа СправочникСсылка.ФизическиеЛица, то оператор В срабатывает и запрос возвращает не пустой результат. Конечно в этом случае не использую временную таблицу и вместо
ФизическоеЛицо В (""ВЫБРАТЬ
                   |                                  ФизЛица.ФизическоеЛицо КАК ФизическоеЛицо
                   |                              ИЗ
                   |                                  ФизЛица КАК ФизЛица"")

пишу
 
ФизическоеЛицо В (&МассивОбъектов)

В консоле запросов при выполнении запроса с временными таблицами, консоль показывает, что во временной таблице есть записи, а конечный результат пустой.

Подскажите, что я не так делаю?
Ответ: Ошибки в запросах платформы бывают, и они исправляются:

Запрос с операторами В и НЕ
Код ошибки: 10186500
Код(ы) обращения: SW1207545
Статус: Исправлена в тестовой версии Зарегистрирована: 27.10.2017
Исправлена: "Технологическая платформа", версия 8.3.12.1159 (для тестирования)

Описание:
При выполнении запроса с оператором В, используемом совместно с отрицанием (оператор НЕ), может быть получен неправильный результат, если в операторе В для сравнения используется тип ссылки.


Код ошибки: 10168730 
Код(ы) обращения: SW1082149
Статус: Исправлена в выпущенной версии Зарегистрирована: 18.10.2016
Исправлена: "Технологическая платформа", версия 8.3.8.2322

Описание:
Результат запроса может быть неверным, если запрос содержит операцию ВЫБОР с большим количеством вариантов, а результат этой операции сравнивается с константой или параметром.
Вопрос: Ошибка выполнения запроса (не допускается обращение к табличным частям)

Добрый день, уважаемые ГУРУ.
Просьба помочь разобраться с кодом. Загвоздка в следующем:
Под полными правами формируется без вопросов.
Код:
    ДатаКонца = ДатаНачала;
    // Определим дату конца
    Выборка = ГруппировкиСтрок1.Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, мНазваниеПериода);
    Пока Выборка.Следующий() цикл
        ТекДата = Выборка[мНазваниеПериода];
        Если ТекДата >= ДатаНачала тогда
            Если ТекДата > ДатаКонца тогда
                ДатаКонца = ТекДата; // Дата конца как максимальная дата в запросе
            КонецЕсли;
            // На остаток влияют только размещенные заявки
            Остатки[ТекДата] = Выборка.Сумма;
        КонецЕсли;
    КонецЦикла;
    Выборка = ГруппировкиСтрок2.Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, мНазваниеПериода);
    Пока Выборка.Следующий() цикл
        ТекДата = Выборка[мНазваниеПериода];
        Если ТекДата >= ДатаНачала тогда
            Если ТекДата > ДатаКонца тогда
                ДатаКонца = ТекДата; // Дата конца как максимальная дата в запросе
            КонецЕсли;
            Если Остатки[ТекДата] = Неопределено тогда
                Остатки[ТекДата] = 0;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    
Ответ:
Просто если файловая то можно было в привелигерованом запускать и без проблем.
А вы можете отладчиком пройтись и посмтреть какой в коне запрос то получается уВас у посроителя и его прикрепить а не весь код
Вопрос: Долгое выполнение запроса.

Здравствуйте.

Есть запрос из типового отчета "Статистика чеков" из Розницы 2.2

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

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ЧекиИСумма.ЧекККМ.КассаККМ КАК КассаККМ,
    ЧекиИСумма.ЧекККМ.Ответственный КАК Кассир,
    ЧекиИСумма.ЧекККМ.Магазин КАК Магазин,
    ЧекиИСумма.ЧекККМ,
    ЧекиИСумма.СуммаПродажи,
    ЧекиИСумма.СуммаВозврата,
    ЧекиИСумма.КоличчествоЧеков,
    ЧекиИСумма.КоличествоЧековПродажи,
    ЧекиИСумма.КоличествоЧековВозврата,
    ЧекиИКоличествоПозиций.КоличествоПозиций,
    ЧекиИКоличествоПозиций.КоличествоПозицийПродажи,
    ЧекиИКоличествоПозиций.КоличествоПозицийВозврата
ИЗ
    ЧекиИСумма КАК ЧекиИСумма
        ЛЕВОЕ СОЕДИНЕНИЕ ЧекиИКоличествоПозиций КАК ЧекиИКоличествоПозиций
        ПО ЧекиИСумма.ЧекККМ = ЧекиИКоличествоПозиций.ЧекККМ
Запрос из СКД. И я в него вставил только условия в ГДЕ на магазин и на номенклатуру не в списке.
В отчёте этот запрос выполняется по всем магазинам быстрее чем у меня по одному.
Время выполнения по одному магазину 350 сек. Это при том что я выбираю данные за 7 дней. И в результате выборки всего 660 строк.
Ответ:
я бы начал с того, что
а) рассказал - какие поля выводятся в типовом отчете
б) получил актуальный текст запроса который выводится с полями из а)
Вопрос: Запрос в цикле, как правильно построить?

Здравствуйте.
8.3 управляемые формы.
Есть табличная часть Протокол, в которой поля, которые нас интересуют: НомерУчастника, Участник, ВремяЧистое, Круг. Записи ведутся последовательно, то есть у Иванова, например, будет запись времени первого круга, потом второго и так далее.
Необходимо для каждой категории определить участников, занявших 3 первые места. То есть у участника должно быть максимальное количество кругов и минимальное время.
В данный момент проверка сделана перебором табличной части. Но такой подход очень зависит от количества участников и количества кругов. Процедура вызывается во время соревнований, поэтому время ее работы критично. На слабеньком ноутбуке это может быть несколько десятых секунды, что вместе с остальными процедурами уже заметно на глаз.
Пытаюсь сделать то же самое запросом. Но не понимаю, как обойтись без цикла его вызова. И цикл по результату тоже явно нерационален. В общем, программист из меня никудышный. Помогите, пожалуйста. Пока время выполнения в цикле по табличной части меньше, чем с запросом.

Код:
&НаСервере
Процедура ОбновитьЛидеров()
    Объект.Лидеры.Очистить();
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ 
        |    Протокол.НомерУчастника,
        |    Протокол.Участник,
        |    Протокол.Категория,
        |    Протокол.ВремяЧистое,
        |    Протокол.Круг
        |ПОМЕСТИТЬ Таб
        |ИЗ
        |    &Протокол КАК Протокол
        |ГДЕ
        |    Протокол.Категория = &Категория;
        |ВЫБРАТЬ
        |    МАКСИМУМ(Таб.Круг) КАК Круг,
        |    МАКСИМУМ(Таб.ВремяЧистое) КАК ВремяЧистое,
        |    Таб.НомерУчастника,
        |    Таб.Участник,
        |    Таб.Категория
        |ИЗ
        |    Таб КАК Таб
        |СГРУППИРОВАТЬ ПО
        |    Таб.НомерУчастника,
        |    Таб.Участник,
        |    Таб.Категория
        |"
        ;
    Запрос.Параметры.Вставить("Протокол",Объект.Протокол.Выгрузить());
    Для сч = 0 По Объект.Категории.Количество()-1 Цикл
        Запрос.Параметры.Вставить("Категория",Объект.Категории[сч].Категория);
        Результат = Запрос.Выполнить().Выгрузить();
        Результат.Сортировать("Круг Убыв, ВремяЧистое");
        Место = 0;
        Для Каждого Стр Из Результат Цикл
            Место = Место + 1;
            Если Место = 4 Тогда
                Прервать;
            КонецЕсли;
            НоваяСтр = Объект.Лидеры.Добавить();
            НоваяСтр.Место = Место;
            НоваяСтр.НомерУчастника = Стр.НомерУчастника;
            НоваяСтр.Участник = Стр.Участник;
            НоваяСтр.Категория = Стр.Категория;
            НоваяСтр.Круг = Стр.Круг;
            НоваяСтр.ВремяЧистое = Стр.ВремяЧистое;
        КонецЦикла;
    КонецЦикла;
КонецПроцедуры
Ответ:
Я пытаюсь и с ним разобраться, но пока сплошные ошибки. Не умею я работать с запросами. Можете привести полный код процедуры?
--- Объединение сообщений, 29 янв 2017 в 10:26 ---
Если это поможет, есть еще таблица Регистрация, в которой есть НомерУчастника, Участник, Категория. Там только участники. Хорошо бы взять эту таблицу и добавить к ней максимальный круг со временем каждого участника.
Вопрос: Запрос

Здравствуйте.

Код:
ВЫБРАТЬ
    УстановкаЦенНоменклатурыТовары.Номенклатура КАК Номенклатура,
    УстановкаЦенНоменклатурыТовары.ВидЦены КАК ВидЦены,
    УстановкаЦенНоменклатурыТовары.Ссылка.Дата КАК Дата,
    УстановкаЦенНоменклатурыТовары.Цена КАК Цена
ПОМЕСТИТЬ ВТ_ДокЦеныНоменклатуры
ИЗ
    Документ.УстановкаЦенНоменклатуры.Товары КАК УстановкаЦенНоменклатурыТовары
ГДЕ
    УстановкаЦенНоменклатурыТовары.Ссылка.Дата МЕЖДУ &ДатаПроверкиНачало И &ДатаПроверкиОкончание
    И УстановкаЦенНоменклатурыТовары.ВидЦены = &ВидЦены
    И УстановкаЦенНоменклатурыТовары.Ссылка.Проведен
   
ИНДЕКСИРОВАТЬ ПО
    Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВТ_ДокЦеныНоменклатуры.Номенклатура КАК Номенклатура,
    ВТ_ДокЦеныНоменклатуры.Дата КАК Дата,
    ВТ_ДокЦеныНоменклатуры.Цена КАК Цена
ИЗ
    ВТ_ДокЦеныНоменклатуры КАК ВТ_ДокЦеныНоменклатуры
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ДокЦеныНоменклатуры КАК Фильтр
        ПО ВТ_ДокЦеныНоменклатуры.Дата > Фильтр.Дата
Есть вот такой запрос(вернее часть другого запроса). Первый запрос отбирает из документов "Установка цен" цены номенклатуры. Второй запрос должен выбрать цены с наибольшей датой.
Например на позицию "Пиво светлое" установили цену в 8.00 и в 21.00. Мне запросом нужно получить последнюю установленную цену.

Я сделал несколько тестовых документов. Один на 08.30, второй на 22.00. И запрос мне вернул нужный результат. Только установку цен на 22.00.
Затем я по одной позиции сделал документ на 21.30 и на 22.00 и запрос мне возвращает оба результата с разным временем.
На скрине Результат 1 первый пакет, на скрине Результат 2 результат выполнения запроса.
Почему по позиции Крюгер выбирает 2 цены, а не последнюю?

Вложения:

  • Размер файла:
    97,9 КБ
    Просмотров:
    2
  • Размер файла:
    79,3 КБ
    Просмотров:
    2
Ответ:
Работает нормально на ИС этот запрос обсуждался там же его тестировали с другими вариантами.