Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
jirniy_vit Member Откуда: Сообщений: 16 |
Привет форумчане! Уже 3 дня бьюсь над задачей конвертации продаж за неделю в продажи за месяц: В таблице хранятся сведения о еженедельных продажах продукта. Необходимо настроить автоматическое преобразование еженедельных значений в ежемесячные. Продажи в переходных неделях (часть недели в одном месяце, часть в другом) необходимо распределить по календарным дням. В данном примере продажи за неделю, окончившуюся 05.03.2013, необходимо распределить следующим образом 2 дня на февраль, 5 дней на март. Результатом решения задачи является SQL код, который позволит автоматически получать преобразованные данные в формате «Таблица результат». Помогите пожалуйста написать сию хранимую процедуру |
29 май 15, 09:31 [17705108] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
В виде произвольного текста что ли хранятся ? "На прошлой недели Маша продала 5 штук" ?
Почему именно так ? |
||||
29 май 15, 09:34 [17705122] Ответить | Цитировать Сообщить модератору |
jirniy_vit Member Откуда: Сообщений: 16 |
![]() К сообщению приложен файл. Размер - 33Kb |
29 май 15, 09:36 [17705140] Ответить | Цитировать Сообщить модератору |
jirniy_vit Member Откуда: Сообщений: 16 |
![]() |
29 май 15, 09:37 [17705142] Ответить | Цитировать Сообщить модератору |
jirniy_vit Member Откуда: Сообщений: 16 |
Из всего этого получилcя следующий код
но вот основная загвоздка в том, как посчитать эти самые переходные недели то есть те недели которые относятся к двум месяцам одновременно - например начало недели 28 февраля и конец 5 марта по идее надо как то вычесть из этой недели часть другого месяца и прибавить ее к другой недели ? вообщем тут я сломался |
|
29 май 15, 09:42 [17705158] Ответить | Цитировать Сообщить модератору |
jirniy_vit Member Откуда: Сообщений: 16 |
Glory, потому как есть таблица продаж за неделю и из этого надо считать месячные продажи, пример таблицы продаж за неделю уже выложен и примерный результат который должен быть, |
29 май 15, 09:52 [17705209] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47045 |
jirniy_vit, А с праздниками и выходными как поступаете? Они вообще существуют? |
29 май 15, 09:52 [17705210] Ответить | Цитировать Сообщить модератору |
jirniy_vit Member Откуда: Сообщений: 16 |
iap, так как в праздники и выходные продажи никто не прекращает то их можно считать как обычный день |
29 май 15, 09:53 [17705220] Ответить | Цитировать Сообщить модератору |
jirniy_vit Member Откуда: Сообщений: 16 |
jirniy_vit, проблема в том,что нельзя просто так сложить недели так как это будет не верно |
29 май 15, 09:54 [17705225] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
В вашей таблице нет никаких недель, только конкретные даты А номер недели из даты можно получить функцией DATEPART |
||
29 май 15, 09:55 [17705231] Ответить | Цитировать Сообщить модератору |
ЦБ Member [заблокирован] Откуда: Сообщений: 2773 |
|
||
29 май 15, 09:56 [17705235] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47045 |
Там только вторники! ![]() |
||
29 май 15, 10:00 [17705263] Ответить | Цитировать Сообщить модератору |
ЦБ Member [заблокирован] Откуда: Сообщений: 2773 |
|
||
29 май 15, 10:02 [17705270] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Т.е. ТС предлагает, например, всю сумму 833,0 от 05.03.2013 "размазать" на 7 дней с 27.02 по 05.03 что ли? |
||||
29 май 15, 10:04 [17705282] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47045 |
|
||||
29 май 15, 10:07 [17705295] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Ну так это одно и тоже |
||||
29 май 15, 10:08 [17705304] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47045 |
Может, надо сдвигать периоды на 2 дня назад, в понедельники? |
||||
29 май 15, 10:09 [17705316] Ответить | Цитировать Сообщить модератору |
jirniy_vit Member Откуда: Сообщений: 16 |
Glory, Ситуация в том что 26 02 2013(это дата конца недели) продажи на сумму 312 а продажи на конец недели 5 03 2013 - 833 но если мы посмотрим в таблицу результатов то увидим другую сумму а именно 550 это все продажи за февраль а получилось это вот как 05 03 2013 это воскресенье а понедельник и вторник это 27 и 28 февраля значит 833 \ 7 = 119 26 02 2013 - 312 + (119* 2 ) = 550 итого за февраль значит к результату за 26 прибавленны продажи за часть недели относящейся к прошлому месяцу |
29 май 15, 10:11 [17705324] Ответить | Цитировать Сообщить модератору |
jirniy_vit Member Откуда: Сообщений: 16 |
в таблице продаж указана дата конца недели и сумма продаж за неделю |
29 май 15, 10:13 [17705335] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Давайте не будем смотреть пока в таблицу результатов, а ответим на простой вопрос 05 03 2013 833.0 - вот это нужно просто разделить на 7 дней ? Так ? 27.02 - 833/7 28.02 - 833/7 01.03 - 833/7 02.03 - 833/7 03.03 - 833/7 04.03 - 833/7 05.03 - 833/7 |
||
29 май 15, 10:14 [17705343] Ответить | Цитировать Сообщить модератору |
jirniy_vit Member Откуда: Сообщений: 16 |
jirniy_vit, так вот собственно вопрос - как написать этот самый проверятель и выкусыватель дней прошлого месяца из недели ? |
29 май 15, 10:14 [17705346] Ответить | Цитировать Сообщить модератору |
jirniy_vit Member Откуда: Сообщений: 16 |
Glory, я думаю да потому что в таблице результатов сумма 550 получилось как продажи за 26 + 2 дня |
29 май 15, 10:16 [17705357] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
- Создате таблицу-календарь со все датами - связываете вашу таблицу с календарем по номеру недели - группируете результат по месяцу даты из календаря |
||
29 май 15, 10:17 [17705361] Ответить | Цитировать Сообщить модератору |
jirniy_vit Member Откуда: Сообщений: 16 |
Glory, Спасибо попробовать можно, но тогда где будет перекидывание части продаж и дней недели в прошлый месяц ? |
29 май 15, 10:22 [17705378] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
вот тут
|
||||
29 май 15, 10:22 [17705383] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |