powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Выбрать строки по максимальному значению реквизита
6 сообщений из 6, страница 1 из 1
Выбрать строки по максимальному значению реквизита
    #37047237
supervk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Необходимо запросом без использования итогов выбрать принадлежность контрагентов по подразделениям по принципу: на какое подразделение больше оформлено заказов, того и контрагент. Т.е. что-то вроде:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
ВЫБРАТЬ
    ЗаказПокупателя.Контрагент,
    ЗаказПокупателя.Подразделение,
    СУММА( 1 ) КАК КоличествоЗаказов
ПОМЕСТИТЬ ЗаказыПоОтделам
ИЗ
    Документ.ЗаказПокупателя КАК ЗаказПокупателя

СГРУППИРОВАТЬ ПО
    ЗаказПокупателя.Контрагент,
    ЗаказПокупателя.Подразделение
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ЗаказыПоОтделам.Контрагент,
    ЗаказыПоОтделам.Подразделение,
    Максимум(ЗаказыПоОтделам.КоличествоЗаказов) КАК КоличествоЗаказов
ИЗ
    ЗаказыПоОтделам КАК ЗаказыПоОтделам

СГРУППИРОВАТЬ ПО
    ЗаказыПоОтделам.Контрагент,
    ЗаказыПоОтделам.Подразделение

Но, чтобы выводил по одной строке Контрагент - Подразделение - КоличествоЗаказов
с максимальным количеством заказов по кадому контрагенту.

Удастся ли вообще запросом организовать такую выборку?
...
Рейтинг: 0 / 0
Выбрать строки по максимальному значению реквизита
    #37047277
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отсортируйте по сумме и выбирайте первую запись только.
...
Рейтинг: 0 / 0
Выбрать строки по максимальному значению реквизита
    #37047302
supervk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист 1сОтсортируйте по сумме и выбирайте первую запись только.
Мне надо список всех контрагентов вывести. Т.е. не одного конкретного.
...
Рейтинг: 0 / 0
Выбрать строки по максимальному значению реквизита
    #37047322
supervk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем, решение исходной задачи таким методом получается корявое, так что снимаю вопрос, спасибо за участие.
...
Рейтинг: 0 / 0
Выбрать строки по максимальному значению реквизита
    #37047537
supervk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вообще, запрос будет такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
ВЫБРАТЬ
    ЗаказПокупателя.Контрагент,
    ЗаказПокупателя.Подразделение,
       СУММА( 1 ) КАК КоличествоЗаказов
ПОМЕСТИТЬ ЗаказыПоОтделам
ИЗ
    Документ.ЗаказПокупателя КАК ЗаказПокупателя

СГРУППИРОВАТЬ ПО
    ЗаказПокупателя.Контрагент,
    ЗаказПокупателя.Подразделение

;

////////////////////////////////////////////////////// 
ВЫБРАТЬ
    ЗаказыПоОтделам.Контрагент,
    ЗаказыПоОтделам.Подразделение,
    ЗаказыПоОтделам.КоличествоЗаказов
ИЗ
    ЗаказыПоОтделам КАК ЗаказыПоОтделам
ГДЕ
    ЗаказыПоОтделам.Подразделение В
            (ВЫБРАТЬ
                МАКСИМУМ(ЗаказыПодразделенияЛидера.Подразделение) КАК Подразделение
            ИЗ
                ЗаказыПоОтделам КАК ЗаказыПодразделенияЛидера ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                        ЗаказыПоОтделам.Контрагент КАК Контрагент,
                        МАКСИМУМ(ЗаказыПоОтделам.КоличествоЗаказов) КАК КоличествоЗаказов
                    ИЗ
                        ЗаказыПоОтделам КАК ЗаказыПоОтделам
                    СГРУППИРОВАТЬ ПО
                                        ЗаказыПоОтделам.Контрагент
                    ) КАК МаксимальноеКоличество
                    ПО
                        ЗаказыПодразделенияЛидера.Контрагент = МаксимальноеКоличество.Контрагент
                            И ЗаказыПодразделенияЛидера.КоличествоЗаказов = МаксимальноеКоличество.КоличествоЗаказов
            ГДЕ
                ЗаказыПодразделенияЛидера.Контрагент = ЗаказыПоОтделам.Контрагент)

СГРУППИРОВАТЬ ПО
    ЗаказыПоОтделам.Контрагент,
    ЗаказыПоОтделам.Подразделение,
    ЗаказыПоОтделам.КоличествоЗаказов
...
Рейтинг: 0 / 0
Выбрать строки по максимальному значению реквизита
    #37049425
LogvinovSerj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Принцип такой, но можно чуть попроще:
ВЫБРАТЬ
ЗаказПокупателя.Контрагент,
ЗаказПокупателя.Подразделение,
Количество(*) КАК КоличествоЗаказов
ПОМЕСТИТЬ ЗаказыПоОтделам
ИЗ
Документ.ЗаказПокупателя КАК ЗаказПокупателя
СГРУППИРОВАТЬ ПО
ЗаказПокупателя.Контрагент,
ЗаказПокупателя.Подразделение

;

Выбрать
ЗаказыПоОтделам,Контрагент,
ЗаказыПоОтделам.Подразделение
ЗаказыПоОтделам.КоличествоЗаказов
ИЗ
ЗаказыПоОтделам
Внутреннее соединение
(
ВЫБРАТЬ
Подразделение,
максимум(КоличествоЗаказов) как КоличествоЗаказов
ИЗ
ЗаказыПоОтделам
СГРУППИРОВАТЬ ПО
Подразделение
) МаксимальнаяПара
ПО МаксимальнаяПара.Подрахделение = ЗаказыПоОтделам.Подрахделение
И МаксимальнаяПара.КоличествоЗаказов = ЗаказыПоОтделам.КоличествоЗаказов

Единственная засада может быть только в том случае, если подразделения использовали одного и того же контрагента одинаковое число раз! Тогда тебе придется как-то выбрать самому из них! Проблемные записи думаю знаешь как вытащить ...
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Выбрать строки по максимальному значению реквизита
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]