|
Запрос на диапазоны дат
|
|||
---|---|---|---|
#18+
Здравствуйте. Имеется график отпусков сотрудника: date_bgn - дата начала отпуска date_end - дата окончания отпуска на входе вот такой график: Код: plsql 1.
date_bgn date_end ------------------------- 12.01.2020 17.01.2020 28.01.2020 05.02.2020 15.02.2020 22.02.2020 на выходе надо разбить график по месяцам: date_bgn date_end ------------------------- 12.01.2020 17.01.2020 28.01.2020 31.01.2020 01.02.2020 05.02.2020 15.02.2020 22.02.2020 Как лучше написать запрос так чтобы сделать такое преобразование? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 18:47 |
|
Запрос на диапазоны дат
|
|||
---|---|---|---|
#18+
verter, если есть таблица-календарь - то просто пересечь календарь с графиками отпусков. Если таблицы-календаря нет - сделать его в виде встроенного представления на уровне запроса, а далее - по схеме, когда календарь есть... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 04:49 |
|
Запрос на диапазоны дат
|
|||
---|---|---|---|
#18+
verter, в вашем случае достаточно не полного календаря, а "обрезка" с первыми числами месяцев... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 04:51 |
|
Запрос на диапазоны дат
|
|||
---|---|---|---|
#18+
спасибо! если соединять с календарём, то нужно делать так: Код: plsql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 15:04 |
|
Запрос на диапазоны дат
|
|||
---|---|---|---|
#18+
verter спасибо! если соединять с календарём, то нужно делать так: Нет Код: plsql 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. 43.
ps проще размножить (connect by, xml, ітд) .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 15:15 |
|
Запрос на диапазоны дат
|
|||
---|---|---|---|
#18+
Щукина Анна А зачем тут "календарик", разве если уже есть в наличии? Код: plsql 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.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 19:41 |
|
Запрос на диапазоны дат
|
|||
---|---|---|---|
#18+
Stax ID B E ---------- -------- -------- 1 12.01.20 17.01.20 2 28.01.20 31.01.20 2 01.02.20 05.02.20 ==> 3 15.01.20 31.01.20 ==> 3 01.03.20 22.03.20 [/src] ps проще размножить (connect by, xml, ітд) .... stax точно! спасибо, что указали на мою ошибку. а как размножить с помощью connect by ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2020, 08:54 |
|
Запрос на диапазоны дат
|
|||
---|---|---|---|
#18+
SY А зачем тут "календарик", разве если уже есть в наличии? Код: plsql 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.
SY. LATERAL или CROSS APPLY работают начиная с 12c версии, у меня 11-я ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2020, 14:40 |
|
Запрос на диапазоны дат
|
|||
---|---|---|---|
#18+
verter у меня 11-я Код: plsql 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.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2020, 15:20 |
|
Запрос на диапазоны дат
|
|||
---|---|---|---|
#18+
Да, ID это не ID сотрудника а уникальное значение записи. Если такого в таблице нет - используй ROWID. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2020, 15:25 |
|
|
start [/forum/topic.php?fid=52&msg=39918687&tid=1881625]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 274ms |
total: | 407ms |
0 / 0 |