|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Теория - Расчет сроков поставки |
|
Теория - Расчет сроков поставки
|
Ветеран Сообщения: 5624 |
Задам вопрос здесь, т.к. теоретиков и практиков по логическому мышлению здесь больше всего
![]() Стоит задача автоматизировать расчет сорванных сроков поставок товаров, точнее вывод разницы в сроках в днях. Для того, чтобы было понятней, прикладываю файлик в Excel. Частично я задачу решил, но когда наткнулся на некоторые условия, зашел в тупик. Поставки разбиты помесячно. Итак, допустим по плану поставка должна быть 05.01.2013. В феврале поставок не намечалось. Фактически в январе ничего не поставили, а в феврале поставили за январь. Получается, мы должны посчитать разницу в днях за январь + количество дней до поставки в феврале. (Я выделил красным на листе этот вариант) А может быть так, что по плану поставка должна быть в феврале, а по факту еще вообще ничего не было. Надо тоже как то считать. В Excel я сделал примерный набросок, которой работает корректно во всех случаях, кроме описанного мною первого случая. Прошу совета, и речь не идет о какой то унифицированной формуле, а скорее о теоретической форме расчета, которую потом можно будет переложить на C#. |
|
------- Отправлено: 11:17, 25-04-2013 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать Delirium, посмотрел табличку. Первая мысль - у тебя не нормализована форма что ли. Ну т.е. не хватает еще одной колонки, чтобы получить полностью определенную запись в базе денных. Хм... поясню из далека.
Беру в пример 11ую строку. Спецификацией определены две поставки по ID 5001397 в январе и в марте. Как определить, какой приход товара (январский или мартовский) был в апреле (ну перенесем дату с февраля для большей наглядности)? Ответ - никак. Можно конечно взять предположение, что поставки закрываются в порядке поступления, но сам понимаешь - в жизни это далеко не факт. Подожди, но при работе с поставщиками и со складским учетом есть сквозные номера отчетности? + опять же поставка может быть не полной. Или это сейчас не рассматривается? Т.е. ИМХО должны быть только две даты. Дата конкретного заказа, и дата его привоза. В базе данных (сейчас я больше в них) id, data_spec, data_fact. Это основное. Дальше можно будет внести еще одно поле, например номер договора, в рамках которого осуществляется ежеквартальная отгрузка товара. Нууу и еще + одно для описания подробностей. Например частичной отгрузки. |
------- Отправлено: 13:23, 25-04-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать lxa85, это лишь часть из базы, показанная для сравнения. На самом деле там порядка 200 колонок с десятками других дат
![]() |
------- Отправлено: 15:51, 25-04-2013 | #3 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать Delirium, мы друг друга поняли
![]() В любом случае, нужен какой-то параметр "принципиально отличающий" Это должны быть различные строки базы данных. Посмотри, возможно будет целесообразно сделать "Представление", т.е. краткую выборку, по которой искать срывы сроков поставки. |
------- Отправлено: 19:03, 25-04-2013 | #4 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Цитата lxa85:
![]() Представление я бы сделал, если бы понял, какое. Пока что идея примерно такая: Берем текущий месяц(скажем, апрель), ищем в спецификации ближайшую дату поставки от СЕГОДНЯ до начала года по месяцам 1) Если нет дат в спецификации, значит поставок не запланировано и отклонения нет. 2) Если нашли(допустим, март) в спецификации 2.1) Смотрим факт за март, если есть - считаем разницу 2.2) Если факта за март нет, обходим месяцы по убывающей и ищем ближайшую поставку. Если ничего нет, берем день текущего месяца и считаем разницу. 3) Ищем следующий, более ранний месяц, и далее по кругу. |
||
------- Отправлено: 01:52, 26-04-2013 | #5 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать |
Отправлено: 22:44, 27-04-2013 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2007 - Расчет долей по кварталам | Ученик волшебника | Microsoft Office (Word, Excel, Outlook и т.д.) | 3 | 18-06-2012 01:15 | |
Расчет вычислительных мощностей | lxa85 | Хочу все знать | 0 | 20-02-2012 10:53 | |
Прочее - [решено] Расчет адресов в диапазоне | timrx | Сетевые технологии | 8 | 30-05-2011 09:32 | |
Delphi - [решено] Расчет RadioGroup | volod3000 | Программирование и базы данных | 4 | 06-04-2011 21:19 | |
Новые подробности относительно сроков выхода Windows Phone 7 | OSZone News | Новости и события Microsoft | 4 | 05-08-2010 18:45 |
|