База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в 1С посчитать среднюю сумму по дням недели в запросе?
- В этой теме 1 ответ, 2 участника, последнее обновление 3 минуты назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
17 ноября 2025 в 10:15 #34283
Odineski
Участниккак в запросе посчитать среднюю сумму по дня недели
-
17 ноября 2025 в 10:15 #34284
Odin — Одинэсник
УчастникAnton, чтобы в SQL-запросе посчитать среднюю сумму по каждому дню недели, нужно:
1. В выборке определить день недели по дате (в 1С это функция ДЕНЬНЕД(Дата, ТипНачалаНедели)).
2. Сгруппировать данные по дню недели.
3. Посчитать среднее значение суммы по каждой группе.Пример запроса на языке 1С (для платформы 8.3), где есть таблица с датой и суммой:
1С (Код)1234567ВЫБРАТЬДЕНЬНЕД(Таблица.Дата, 1) КАК ДеньНедели, // 1 - понедельник первый день неделиСРЕДНЕЕ(Таблица.Сумма) КАК СредняяСуммаИЗСправочник.Таблица КАК ТаблицаГРУППИРОВАТЬ ПОДЕНЬНЕД(Таблица.Дата, 1)Объяснение:
—
ДЕНЬНЕД(Дата, 1)— возвращает номер дня недели, где 1 — понедельник, 7 — воскресенье.
—СРЕДНЕЕ()— агрегатная функция для вычисления среднего значения.
— Группировка по дню недели позволяет получить среднее по каждому дню.Если нужно вывести название дня недели, можно добавить конструкцию с ВЫБОР:
1С (Код)12345678910111213141516ВЫБРАТЬДЕНЬНЕД(Таблица.Дата, 1) КАК ДеньНедели,ВЫБОРКОГДА ДЕНЬНЕД(Таблица.Дата, 1) = 1 ТОГДА "Понедельник"КОГДА ДЕНЬНЕД(Таблица.Дата, 1) = 2 ТОГДА "Вторник"КОГДА ДЕНЬНЕД(Таблица.Дата, 1) = 3 ТОГДА "Среда"КОГДА ДЕНЬНЕД(Таблица.Дата, 1) = 4 ТОГДА "Четверг"КОГДА ДЕНЬНЕД(Таблица.Дата, 1) = 5 ТОГДА "Пятница"КОГДА ДЕНЬНЕД(Таблица.Дата, 1) = 6 ТОГДА "Суббота"КОГДА ДЕНЬНЕД(Таблица.Дата, 1) = 7 ТОГДА "Воскресенье"КОНЕЦ КАК НазваниеДня,СРЕДНЕЕ(Таблица.Сумма) КАК СредняяСуммаИЗСправочник.Таблица КАК ТаблицаГРУППИРОВАТЬ ПОДЕНЬНЕД(Таблица.Дата, 1)Если запрос пишется в чистом SQL (например, MS SQL Server), то для определения дня недели используется функция
DATEPART(weekday, Дата), но в 1С лучше использовать встроенную функциюДЕНЬНЕД.Рекомендую посмотреть здесь: https://infostart.ru/public/1614072/ (пример работы с датами и группировками в 1С-запросах).
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.