|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
__Michelleiddqd_win, Правильно ли я понимаю, что требуется что-то вроде прогноза - каким был бы интервал, если событие произошло бы сегодня. И средний интервал рассчитать с учетом полученного значения. Так или нет? Почти) Средний интервал мы рассчитали на основе предыдущих событий. И теперь нам надо спрогнозировать это событие исходя из того сколько времени прошло с последнего. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2016, 22:09 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
То есть когда рТН(р с последнего из событий Событие1 например) > рС ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2016, 22:14 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
iddqd_win. .... И теперь нам надо спрогнозировать это событие исходя из того сколько времени прошло с последнего.... Не поняла.... Можно пример на основе все той же таблички? Что должно появиться, если выполнить требуемое вручную? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2016, 22:15 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
И еще. Не увидела, чтобы запрос рТН как-то работал с "сегодня", как заявляется. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2016, 22:20 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
__Michelle, Событие ДатаБ 20.02.2016Б 25.02.2016В 27.02.2016Б 01.03.2016А 01.03.2016В 02.03.2016А 04.03.2016В 07.03.2016А 07.03.2016 А, Б, В - циклически происходящие события, но цикл не постоянен. Интервал между датами одного события (рТ) в примере для события Б: 20.02.2016 (рТ = 5 дней) 25.02.2016 (рТ = 5 дней) 01.03.2016 Средняя периодичность каждого события (рС) это среднее арифметическое, дней между датами одного события. Для события Б рС = (5 + 5)/2 так как интервала 2 = 5 дней Сегодня 10.03.2016. Последний раз событие Б произошло 01.03.2016 то есть сегодня рТН = DateDiff(01.03.2016, 10.03.2016) = 9 дней Средняя же периодичность рС для события Б 5 дней. Теперь в случае когда рТН >= рС для данного события нужно получить не что такое: Событие Последняя дата Средняя периодичность Прошло с последнего дней Б 01.03.2016 5 9 Для остальных событий: В: рТ = 27.02.2016 (4 дня) 02.03.2016 (5 дней) 07.03.2016 рС = 4.5 рТН = 07.03.2016 (3 дня) 10.03.2016 рТН < рС выводить не нужно А: рТ = 3дня, 3 дня рС = 3дня рТН = 07.03.2016 (3 дня) 10.03.2016 рТН=рС на вывод Итоговая для всех событий Событие Последняя дата Средняя периодичность Прошло с последнего дней Б 01.03.2016 5 9А 07.03.2016 3 3 Вроде все аспекты затронул) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2016, 10:56 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
__MichelleИ еще. Не увидела, чтобы запрос рТН как-то работал с "сегодня", как заявляется. Ой, да там datediff(d, Дата, Date()) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2016, 11:05 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
iddqd_winОй, да там datediff(d, Дата, Date()) Точнее Дата ТОР1 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2016, 11:06 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
__Michelle, Ну и допустим из жизни пример.. Скажем принтер - допустим я заправляю катриджы каждые 35 дней, с последней заправки прошло уже 45 дней, запрос будет говорить о том что скорее всего печатать придется идти куда то еще) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2016, 11:14 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
Так? Запрос 4. Код: sql 1. 2. 3.
Результат.Событие Дата СредняяПериодичность ПрошлоДнейСобытие1 04.03.2016 2 6Событие2 06.03.2016 4 4 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2016, 11:33 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
__MichelleТак? Запрос 4. Код: sql 1. 2. 3.
Результат.Событие Дата СредняяПериодичность ПрошлоДнейСобытие1 04.03.2016 2 6Событие2 06.03.2016 4 4 Не хватает условия ПрошлоДней >= Запрос2.AvgAvg ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2016, 12:17 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
Добавьте? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2016, 12:31 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
__Michelle, Постараюсь, спасибо за помощь ещё раз! Уже замучил Вас)) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2016, 13:50 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
__Michelle, Вроде всё верно) Код: plsql 1. 2. 3.
И ещё раз огромное спасибо) Если потихоньку начинаю понимать что к чему) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2016, 13:55 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
iddqd_win, Нужно вот так - добавленное к Запросу 4 выделено красным: Запрос 4 Код: sql 1. 2. 3. 4.
У Вас аналогичное выражение вставлено в подзапрос, а нужно отнести его к основному запросу. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2016, 14:07 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
__Michelleiddqd_win, Нужно вот так - добавленное к Запросу 4 выделено красным: Запрос 4 Код: sql 1. 2. 3. 4.
У Вас аналогичное выражение вставлено в подзапрос, а нужно отнести его к основному запросу. Ясно, запомню этот нюанс. Хотя вроде тоже работало) Ну и по традиции еще раз спасибо) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2016, 14:25 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
iddqd_win, Пожалуйста!))) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2016, 14:30 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
iddqd_win, чтобы определить среднюю периодичность вычислять рТ не обязательно. Поэтому решение последней задачи, не использующее подзапроы и дополнительные сохраненные запросы, может быть таким Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2016, 15:06 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
-Практикант-, Тоже работает, спасибо за короткий вариант. Почему мне нравится с отдельными запросами, потому что периодичность событий сезонная, то есть летом допустим чаще, зимой реже. И теперь мне нужно изменить расчет рС не за все время, а скажем за последних 3-4 раза, а в идеале за последних n - раз задавая n в программе. И можно будет не переписывать весь код. Подскажите как подобный запрос составить? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 10:25 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
__Michelle, Доброго дня! Хочу еще раз Вас потревожить) Не подскажите как реализовать расчет периодичности рС не для всех событий а для 1, 2, n последних? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 11:55 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
iddqd_win-Практикант-, Тоже работает, спасибо за короткий вариант. Почему мне нравится с отдельными запросами, потому что периодичность событий сезонная, то есть летом допустим чаще, зимой реже. И теперь мне нужно изменить расчет рС не за все время, а скажем за последних 3-4 раза, а в идеале за последних n - раз задавая n в программе. И можно будет не переписывать весь код. Подскажите как подобный запрос составить? Потестируйте такой запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
где N - требуемый параметр. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 13:46 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
-Практикант-, Не работает, точнее работает но результат не правильный. Взял такие даты Дата01.02.201610.01.201620.01.201601.03.201604.03.201608.03.201610.03.2016 Результат для N = : 1 - 6 дней средняя 2 - 4.5 дней 3 - 6.3333 дней Было мнение что он считает и последнюю разницу до сегодня для средней, но вроде результаты не подходят под эту теорию) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 18:13 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
-Практикант-, Ой, вторая и третья дата соответственно февраль ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 18:14 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
Если N это количество интервалов, то должно получиться так: 1 - 2 дня (10.03 и 08.03) 2 - 3 дня (10.03 08.03 04.03) Если количество дат: то для 1 не посчитает для 2 - 2 дня для 3 - 3 дня ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 18:22 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
Здесь 18947278 Вы спрашивали iddqd_win... как реализовать расчет периодичности рС не для всех событий а для 1, 2, n последних? Я расшифровал это так: нужно определить рС по N последним (при сортировке в порядке возрастанию дат) записям каждого события. Для того, чтобы было более понятнее, вспомните, что каждой записи соответствует значение рТ и что запись с пустым рТ в расчетах не участвует. Результаты запроса совпадают с iddqd_winЕсли N это количество интервалов, то должно получиться так: 1 - 2 дня (10.03 и 08.03) 2 - 3 дня (10.03 08.03 04.03) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2016, 23:26 |
|
VB2010е, Access, Запрос к БД
|
|||
---|---|---|---|
#18+
-Практикант-Здесь Вы спрашивали Я расшифровал это так: нужно определить рС по N последним (при сортировке в порядке возрастанию дат) записям каждого события. Всё верно. рС средний интервал времени для N интервалов Для того, чтобы было более понятнее, вспомните, что каждой записи соответствует значение рТ и что запись с пустым рТ в расчетах не участвует. Тоже верно. рТ разница между двумя последующими датами одного события. Результаты запроса совпадают с iddqd_winЕсли N это количество интервалов, то должно получиться так: 1 - 2 дня (10.03 и 08.03) 2 - 3 дня (10.03 08.03 04.03) Вы получили значения 2 дня для последнего интервала и 3 дня для 2 последних? Что же я делаю не правильно?((( У меня все равно 4.5 и 6.33 для N равного 2 и 3 соответственно. Давайте разберём код чтобы понять, почему у меня ошибка? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2016, 08:09 |
|
|
start [/forum/topic.php?fid=45&msg=39195220&tid=1613798]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 303ms |
total: | 445ms |
0 / 0 |