Получить запросом данные по продажам на стыке месяцев

1. user824140 02.02.21 17:53 Сейчас в теме
1. Выбираю в запросе определенную Номенклатуру, а вместе с ней и Дату, и Количество, из тч.документа (к сожалению, у него нет регистров) за определенный период (данный документ делается раз в месяц). Дата документа всегда начало месяца!!!!

То есть, у меня при выборке за месяц получаются такие данные - 01.01.2021 Шапка 310 шт (01.02.2021 Шапка 125 шт, и т.д.)

2. За этот же период я получаю (см. картинку "Пример") все недели.

Что нужно сделать в запросе (подскажите, пожалуйста, как это сделать):

а) Разбить количество проданных номенклатур за месяц на количество дней месяца. Чтобы знать сколько в среднем за день мы продаем. (это сделал)

б) Связать в запросе недели (из одной временной таблицы) и Количество проданной номенклатуры за эту неделю (из другой временной таблицы) - из расчета того, что мы уже знаем сколько продаем номенклатуры (например, шапочка) за день

в) Если неделя календаря застряла между месяцами (стыковая), то рассчитывать так: количество дней предыдущего месяца в этой недели * на количество проданных шапочек в среднем за день в предыдущем месяце + количество дней текущего(следующего) месяца в этой недели* на количество проданных шапочек в среднем за день в текущем месяце
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
9. user824140 03.02.21 03:33 Сейчас в теме +2 $m
1. Получаем временную таблицу со всеми днями за указанный период.
2.Соединяем с таблицей, где посчитаны продажи по конкретной номенклатуре в среднем за день. Каждому дню месяца присобачиваем количество проданной номенклатуры за день. Соединение - (НАЧАЛОПЕРИОДА(ПроизводственныйКалендарьДни.ДеньПланов, МЕСЯЦ) = НАЧАЛОПЕРИОДА(Док.Период, МЕСЯЦ))
3. Выбираем поле - НАЧАЛОПЕРИОДА(ПроизводственныйКалендарьДни.ДеньПланов, НЕДЕЛЯ) КАК НачалоНедели из врем.таблицы по дням.
4. Группируем по данному полю, а по количеству суммируем.
И оно прекрасно суммирует данные за неделю. Даже если эта неделя на стыке 2 месяцев
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. pyrkin_vanya 488 02.02.21 21:36 Сейчас в теме
(1)У вас принципиальное задание сделать такое запросом? Запрос ограничен, да и не всегда он может выполнить то, что надо. Почему такие условия не можете выполнить кодом?
2. insurgut 207 02.02.21 18:14 Сейчас в теме +0.52 $m
Как идея, чтобы самому не придумывать ничего в расчетах, я бы:
1. Посчитал среднее число продаж за день в месяце, по производственному календарю построил втТаблицу на каждый день
2. Из втТаблицы для каждой записи помимо даты добавил НачалоПериода(Продажа.Дата, НЕДЕЛЯ) КАК ПериодНедлеля, НачалоПериода(Продажа.Дата, МЕСЯЦ) КАК ПериодМесяц и т.д., группировал в колонках по этим полям в зависимости от детализации.
В итоге не нужно самому никакие стыки рассчитывать, суммированием по периодам занималась бы уже СКД
3. user824140 02.02.21 19:51 Сейчас в теме
4. insurgut 207 02.02.21 21:31 Сейчас в теме
(3) так вы хотя бы уточните, чего ждете в итоге? Если идеи на словах не достаточно, вероятнее всего готовый запрос. Вы хотя бы свой запрос полностью выложите, иначе как вам поможет кто-то? :)
5. пользователь 02.02.21 21:31
Сообщение было скрыто модератором.
...
7. user824140 02.02.21 21:50 Сейчас в теме
(6) Это маленькая часть огромнейшего запроса.
8. pyrkin_vanya 488 02.02.21 22:34 Сейчас в теме
(7)на мой вопрос то вы так и не ответили...
9. user824140 03.02.21 03:33 Сейчас в теме +2 $m
1. Получаем временную таблицу со всеми днями за указанный период.
2.Соединяем с таблицей, где посчитаны продажи по конкретной номенклатуре в среднем за день. Каждому дню месяца присобачиваем количество проданной номенклатуры за день. Соединение - (НАЧАЛОПЕРИОДА(ПроизводственныйКалендарьДни.ДеньПланов, МЕСЯЦ) = НАЧАЛОПЕРИОДА(Док.Период, МЕСЯЦ))
3. Выбираем поле - НАЧАЛОПЕРИОДА(ПроизводственныйКалендарьДни.ДеньПланов, НЕДЕЛЯ) КАК НачалоНедели из врем.таблицы по дням.
4. Группируем по данному полю, а по количеству суммируем.
И оно прекрасно суммирует данные за неделю. Даже если эта неделя на стыке 2 месяцев
10. insurgut 207 03.02.21 06:48 Сейчас в теме
(9) не за что. Надеюсь совесть не загрызет :)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот