Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Як в запросі сформувати рейтинг ?          
alex-l1904 Подменю пользователя
сообщение 21.07.23, 11:09
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 67
Спасибо сказали: 11 раз
Рейтинг: 11

Доброго дня,
треба сформувати рейтинг менеджерів по кількості виписаних документів.
Хто виписав найбільше в того рейтинг 1.
Хочу зробити запросом.
Роблю наростаючий підсумок, але є питання коли кілька менеджерів менеджерів випасали однакову
кількість документів.

Приклад як має бути

Кількість Документів Рейтинг
100 1
95 2
90 3
90 3
80 4
80 4

А наростаючий підсумок робить

Кількість Документів Рейтинг
100 1
95 2
90 4
90 4
80 6
80 6

ВЫБРАТЬ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВнутреннийЗаказ.Ссылка) КАК КолВоДокументов,
    ВнутреннийЗаказ.Сформировал КАК Сформировал
ПОМЕСТИТЬ ВрТабл
ИЗ
    Документ.ВнутреннийЗаказ КАК ВнутреннийЗаказ
ГДЕ
    ВнутреннийЗаказ.Дата >= &Дата
    И ВнутреннийЗаказ.Сформировал <> ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)

СГРУППИРОВАТЬ ПО
    ВнутреннийЗаказ.Сформировал
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВрТабл.Сформировал КАК Сформировал,
    ВрТабл.КолВоДокументов КАК КолВоДокументов,
    1  КАК Рейтинг
ПОМЕСТИТЬ ВрТабл2
ИЗ
    ВрТабл КАК ВрТабл
        
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВрТабл2.Сформировал КАК Сформировал,
    МАКСИМУМ(ВрТабл2.КолВоДокументов) КАК КолВоДокументов,
    СУММА(ЕСТЬNULL(ВрТабл21.Рейтинг, 0)) КАК Рейтинг1
ИЗ
    ВрТабл2 КАК ВрТабл2
        ЛЕВОЕ СОЕДИНЕНИЕ ВрТабл2 КАК ВрТабл21
        ПО ВрТабл2.КолВоДокументов <= ВрТабл21.КолВоДокументов

СГРУППИРОВАТЬ ПО
    ВрТабл2.Сформировал

УПОРЯДОЧИТЬ ПО
    Рейтинг1


alex-l1904 Подменю пользователя
сообщение 21.07.23, 15:59
Сообщение #2

Говорящий
***
Группа: Пользователи
Сообщений: 67
Спасибо сказали: 11 раз
Рейтинг: 11

зробив так. те що треба
ВЫБРАТЬ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВнутреннийЗаказ.Ссылка) КАК КолВоДокументов,
    ВнутреннийЗаказ.Сформировал КАК Сформировал
ПОМЕСТИТЬ ВрТабл
ИЗ
    Документ.ВнутреннийЗаказ КАК ВнутреннийЗаказ
ГДЕ
    ВнутреннийЗаказ.Дата >= &Дата
    И ВнутреннийЗаказ.Сформировал <> ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)

СГРУППИРОВАТЬ ПО
    ВнутреннийЗаказ.Сформировал
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВрТабл.КолВоДокументов КАК КолВоДокументов,
    МАКСИМУМ(ВрТабл.Сформировал) КАК ОдинМенедж
ПОМЕСТИТЬ ТаблОдогоМенедж
ИЗ
    ВрТабл КАК ВрТабл

СГРУППИРОВАТЬ ПО
    ВрТабл.КолВоДокументов
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВрТабл.Сформировал КАК Сформировал,
    ВрТабл.КолВоДокументов КАК КолВоДокументов,
    ВЫБОР
        КОГДА ТаблОдогоМенедж.ОдинМенедж = ВрТабл.Сформировал
            ТОГДА 1
        ИНАЧЕ 0
    КОНЕЦ КАК Рейтинг
ПОМЕСТИТЬ ВрТабл2
ИЗ
    ВрТабл КАК ВрТабл
        ЛЕВОЕ СОЕДИНЕНИЕ ТаблОдогоМенедж КАК ТаблОдогоМенедж
        ПО ВрТабл.КолВоДокументов = ТаблОдогоМенедж.КолВоДокументов
            И ВрТабл.Сформировал = ТаблОдогоМенедж.ОдинМенедж
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВрТабл2.Сформировал КАК Сформировал,
    МАКСИМУМ(ВрТабл2.КолВоДокументов) КАК КолВоДокументов,
    СУММА(ЕСТЬNULL(ВрТабл21.Рейтинг, 0)) КАК Рейтинг1
ИЗ
    ВрТабл2 КАК ВрТабл2
        ЛЕВОЕ СОЕДИНЕНИЕ ВрТабл2 КАК ВрТабл21
        ПО ВрТабл2.КолВоДокументов <= ВрТабл21.КолВоДокументов

СГРУППИРОВАТЬ ПО
    ВрТабл2.Сформировал

УПОРЯДОЧИТЬ ПО
    Рейтинг1

Спасибо сказали: awp, Vofka,

TohaMonster Подменю пользователя
сообщение 25.07.23, 15:18
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 70
Спасибо сказали: 29 раз
Рейтинг: 29

alex-l1904 @ 21.07.23, 12:09 * ,

А если так? Штука весьма полезная при округлениях

ВЫБРАТЬ
    ВрТабл2.Сформировал КАК Сформировал,
    МАКСИМУМ(ВрТабл2.КолВоДокументов) КАК КолВоДокументов,
    СУММА(ЕСТЬNULL(ВрТабл21.Рейтинг, 0)) КАК Рейтинг1
ИЗ
    ВрТабл2 КАК ВрТабл2
        ЛЕВОЕ СОЕДИНЕНИЕ ВрТабл2 КАК ВрТабл21

        ПО ВрТабл2.КолВоДокументов < ВрТабл21.КолВоДокументов
             ИЛИ ВрТабл2.КолВоДокументов = ВрТабл21.КолВоДокументов
                      И ВрТабл2.Сформировал < ВрТабл21.Сформировал


СГРУППИРОВАТЬ ПО
    ВрТабл2.Сформировал

УПОРЯДОЧИТЬ ПО
    Рейтинг1

Batchir Подменю пользователя
сообщение 02.08.23, 9:18
Сообщение #4

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0

Привет.
В платформе есть АВТОНОМЕРЗАПИСИ и неявная сортировка временных таблиц

ВЫБРАТЬ ПЕРВЫЕ 999999999999
    ВнутреннийЗаказ.Сформировал КАК Сформировал,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВнутреннийЗаказ.Ссылка) КАК КолВоДокументов,
    АВТОНОМЕРЗАПИСИ() КАК Рейтинг
ПОМЕСТИТЬ ВрТабл
ИЗ
    Документ.ВнутреннийЗаказ КАК ВнутреннийЗаказ
ГДЕ
    ВнутреннийЗаказ.Дата >= &Дата
    И ВнутреннийЗаказ.Сформировал <> ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)

СГРУППИРОВАТЬ ПО
    ВнутреннийЗаказ.Сформировал

УПОРЯДОЧИТЬ ПО
    КолВоДокументов УБЫВ
;    
Выбрать * Из ВрТабл


UPD: Не обратил внимание что должен выводиться одинаковый рейтинг для одинаковых количеств документов.
В случае выше просто увеличивается номер согласно сортировки, но запрос оставил для истории, может кому пригодиться.
Если по задаче, то можно сформировать отдельную таблицу рейтингов согласно количеству документов и уже с ней соединяться

ВЫБРАТЬ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВнутреннийЗаказ.Ссылка) КАК КолВоДокументов,
    ВнутреннийЗаказ.Сформировал КАК Сформировал
ПОМЕСТИТЬ ВрТабл
ИЗ
    Документ.ВнутреннийЗаказ КАК ВнутреннийЗаказ
ГДЕ
    ВнутреннийЗаказ.Дата >= &Дата
    И ВнутреннийЗаказ.Сформировал <> ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)

СГРУППИРОВАТЬ ПО
    ВнутреннийЗаказ.Сформировал
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 999999999
    ВрТабл.КолВоДокументов КАК КолВоДокументов,
    АВТОНОМЕРЗАПИСИ() КАК Рейтинг
ПОМЕСТИТЬ ВрРейтинг
ИЗ
    ВрТабл КАК ВрТабл

СГРУППИРОВАТЬ ПО
    ВрТабл.КолВоДокументов

УПОРЯДОЧИТЬ ПО
    КолВоДокументов УБЫВ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВрТабл.Сформировал КАК Сформировал,
    ВрТабл.КолВоДокументов КАК КолВоДокументов,
    ВрРейтинг.Рейтинг КАК Рейтинг
ИЗ
    ВрТабл КАК ВрТабл
        ЛЕВОЕ СОЕДИНЕНИЕ ВрРейтинг КАК ВрРейтинг
        ПО ВрТабл.КолВоДокументов = ВрРейтинг.КолВоДокументов


Сообщение отредактировал Batchir - 02.08.23, 9:40

Спасибо сказали: TohaMonster,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 27.04.24, 11:11
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!