Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте уважаемый форумчане!
Я новичок в SQLвот решаю задание. Второй ден не могу понять как с ним справится.
Задача звучит так:
В таблице хранятся сведения о еженедельных продажах продукта.
Необходимо настроить автоматическое преобразование еженедельных значений в ежемесячные. Продажи в переходных неделях (часть недели в одном месяце, часть в другом) необходимо распределить по календарным дням.
В данном примере продажи за неделю, окончившуюся 05.03.2013, необходимо распределить следующим образом 2 дня на февраль, 5 дней на март.
Результатом решения задачи является SQL код, который позволит автоматически получать преобразованные данные в формате «Таблица результат». Таблица с данными условно называется Test.
ТАблица Test
Дата Сумма
26.02.2013 312,00
05.03.2013 833,00
12.03.2013 225,00
19.03.2013 453,00
26.03.2013 774,00
02.04.2013 719,00
09.04.2013 136,00
16.04.2013 133,00
23.04.2013 157,00
30.04.2013 850,00
07.05.2013 940,00
14.05.2013 933,00
21.05.2013 422,00
28.05.2013 952,00
04.06.2013 136,00
11.06.2013 701,00
ИТого 8 676,00
Таблица результат
Дата мес Сумма
28.фев.13 550,00
31.мар.13 2 560,57
30.апр.13 1 481,43
31.май.13 3 305,29
30.июн.13 778,71
31.июл.13 0,00
Итого
8 676,00
Не могу сделать верный запрос. Помогите пожалуйста решением
Работаю в среде MySQLWorkbench
Неактивен
Это учебное задание (лабораторная работа, курсовая или что-то такое) или реальная рабочая задача?
То есть какова постановка? Можно ли сделать хранимой процедурой или именно ванильным sql'ем необходимо?
Если это рабочая задача (не учебная), то я бы скорее рекомендовал выкачать строки этой таблицы на клиент (уже на чем его пишете c++, php, c# или что там у Вас), отсортировав по дате по возрастанию и спокойно построил бы результирующую таблицу средствами клиента.
>В данном примере продажи за неделю, окончившуюся 05.03.2013, необходимо распределить следующим образом 2 дня на февраль, 5 дней на март.
Вот такие фокусы делать средствами именно sql-запроса - это всё же больше напоминает садомазо.
Неактивен