Необходимо настроить автоматическое преобразование еженедельных значений в ежемесячные. Продажи в переходных неделях (часть недели в одном месяце, часть в другом) необходимо распределить по календарным дням.
В данном примере продажи за неделю, окончившуюся 05.03.2020, необходимо распределить следующим образом 2 дня на февраль, 5 дней на март.
Дата Сумма
27.02.2020 312,00
05.03.2020 833,00
12.03.2020 225,00
19.03.2020 453,00
26.03.2020 774,00
02.04.2020 719,00
09.04.2020 136,00
16.04.2020 133,00
23.04.2020 157,00
30.04.2020 850,00
07.05.2020 940,00
14.05.2020 933,00
21.05.2020 422,00
28.05.2020 952,00
04.06.2020 136,00
11.06.2020 701,00
Дата мес Сумма
29.фев.20 550,00
31.мар.20 2 560,57
30.апр.20 1 481,43
31.май.20 3 305,29
30.июн.20 778,71
31.июл.20 0,00
SELECT yy, mm, SUM(part) SUMM
FROM (
SELECT
*,
dateadd(day, -d, date_week) dd, SUMM * 0.2 part,
DATEPART (month , dateadd(day, -d, date_week)) mm,
DATEPART (year , dateadd(day, -d, date_week)) yy
FROM dbo.Tbl
CROSS JOIN (
SELECT 0 d UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4
UNION SELECT 5 UNION SELECT 6
) days
WHERE DATEPART ( weekday , dateadd(day, -d, date_week) ) NOT IN (1, 7)
) daily
GROUP BY yy, mm