|
Поиск отсутствующих периодов
|
|||
---|---|---|---|
#18+
Добрый день! Помогите, пожалуйста, решить задачку для отличников) В таблице staj хранятся периоды работы сотрудников предприятия: tab_nomer;data_s;data_po123;10.01.2018;20.03.2019123;01.01.2019;31.12.2020123;01.04.2021;31.12.2021 456;05.03.2016;01.12.2016456;01.01.2018;31.12.2018 Необходимо выбрать табельные номера сотрудников, у которых есть ПЕРЕРЫВЫ в работе длительностью более 6 месяцев. В примере выше сотрудник 123 не должен попасть в выборку, так как у него перерыв в стаже 3 месяца, а сотрудник 456 должен попасть в выборку, так как у него перерыв в стаже 13 месяцев. Периоды могут пересекаться. Все даты заполнены, null'ов не бывает. Если это поможет, есть еще таблица, содержащая календарь с 1900 года, в котором одна строка - один день, все даты уникальны. Можно ли это выбрать с помощью sql? Помогите, пожалуйста, советами. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 16:17 |
|
Поиск отсутствующих периодов
|
|||
---|---|---|---|
#18+
Для каждой записи поставьте флаг - data_po не принадлежит другому периоду стало быть после data_po перерыв в стаже, и число месяцев до следующей data_s. После этого выборка будет тривиальной. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 17:13 |
|
Поиск отсутствующих периодов
|
|||
---|---|---|---|
#18+
SERG1257, спасибо, хорошая идея) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 17:16 |
|
Поиск отсутствующих периодов
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
alol55, ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 17:35 |
|
Поиск отсутствующих периодов
|
|||
---|---|---|---|
#18+
3unknown Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
Садись. Неуд. ЗЫ. Индексы отдыхают. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 17:45 |
|
Поиск отсутствующих периодов
|
|||
---|---|---|---|
#18+
3unknown Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
alol55, Спасибо, но правильно ли это сработает для такого случая: 01.01.2018 - 01.10.2018 01.02.2018 - 01.05.2018 01.09.2018 - 01.04.2020 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 17:58 |
|
Поиск отсутствующих периодов
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 18:07 |
|
Поиск отсутствующих периодов
|
|||
---|---|---|---|
#18+
3unknown, для предыдущего примера, наверное, это тоже сработает неправильно ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 18:13 |
|
Поиск отсутствующих периодов
|
|||
---|---|---|---|
#18+
alol55, Да, для таких случаев этот подход не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 18:16 |
|
Поиск отсутствующих периодов
|
|||
---|---|---|---|
#18+
alol55 , возможно так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 18:46 |
|
Поиск отсутствующих периодов
|
|||
---|---|---|---|
#18+
HandKot, идею не поняла, но попробую, спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 19:35 |
|
Поиск отсутствующих периодов
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 08:38 |
|
|
start [/forum/topic.php?fid=46&fpage=3&tid=1683850]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 133ms |
0 / 0 |