Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
10.01.2018, 08:35
|
|||
|---|---|---|---|
|
|||
Обновить таблицу со списком дат количеством попаданий этих дат из диапазонов другой |
|||
|
#18+
Признаться, со своим вопросом даже не знал, как правильно тему написать. Для отчёта создаётся временная табличка-календарик со списком дат и количеством пападаний. Для примера: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Есть другая табличка в которой имеются записи с указанием периода работы. Начальная и конечная даты. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Записей сотни тысяч за несколько лет. Они могут полностью попадать в расчётный период или частично. Или вообще не попадать: Хочется узнать, есть ли элегантный способ обновления временной таблички при такой ситуации? Что бы для каждого дня подсчитать количество записей, попавших в диапазон? Не считая варианта с курсором в голову приходи такой вариант: Код: sql 1. 2. 3. Но это хорошо для такого простого варианта. А когда реальный подзапрос состоит не из одной таблички, а из множества связанных с большим количеством условий, то такой вариант уже работает очень тяжело. Особенно когда надо сделать выборку за несколько месяцев. Как вариант сперва попробовать нужные записи из этой выборки вытащить ещё в одну временную табличку и уже потом её использовать в подзапросе. Но мне интересно, может быть есть какой-то более простой способ всё это подсчитать не делая подзапросы по каждому дню отдельно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.01.2018, 09:12
|
|||
|---|---|---|---|
Обновить таблицу со списком дат количеством попаданий этих дат из диапазонов другой |
|||
|
#18+
Maestro NVтакой вариант уже работает очень тяжело А что там с индексами на таблицах? Если их нет (как показано) - то как ни делай, всё одно хреново получится. А если их есть - то надо верстать решение в зависимости от того, каких именно их есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.01.2018, 09:19
|
|||
|---|---|---|---|
|
|||
Обновить таблицу со списком дат количеством попаданий этих дат из диапазонов другой |
|||
|
#18+
Maestro NV, почитай про Merge. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.01.2018, 09:36
|
|||
|---|---|---|---|
|
|||
Обновить таблицу со списком дат количеством попаданий этих дат из диапазонов другой |
|||
|
#18+
Maestro NV, в твоем исходном тестовом примере решение могло бы выглядеть примерно так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.01.2018, 11:45
|
|||
|---|---|---|---|
|
|||
Обновить таблицу со списком дат количеством попаданий этих дат из диапазонов другой |
|||
|
#18+
Добрый Э - ЭхMaestro NV, почитай про Merge. Спасибо за наводку. Как-то так получилось, что про merge ничего и не знаю. Надо изучить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.01.2018, 11:49
|
|||
|---|---|---|---|
|
|||
Обновить таблицу со списком дат количеством попаданий этих дат из диапазонов другой |
|||
|
#18+
Для дат используйте ISO написание, не зависящее от языковых настроек Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1690553]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 260ms |
| total: | 382ms |

| 0 / 0 |
