|
|
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Добрый день. Имеется длинная динамическая функция, которая проходит по таблице График. В этой таблице есть столбцы год, код сотрудника и 52 столбца, которые подразумевают собой недели. В данной функции есть возможность преобразования названия столбцов с даты (число и месяц начала недели). То есть неделя N2, N3 в 2017 году представлены как "2 янв, 9 янв". Также значения столбцов представляют собой буквы "у", по которым функция, динамически прогоняясь по столцам, вытаскивает те, чьи значения равны этому "у". Однако есть недочёт, ибо нужно показывать первое и последнее число отпуска. С первым числом понятно - это начало недели, а вот последнее - это именно последний день последней недели отпуска. Грубо говоря, если у меня стоит буковка с неделях 2 января, 9 января, и это интервал отпуска, то нужно показать именно 2 января, 15 января (то есть начало и конец отпуска). Что нужно изменить в данной функции? Я пытался поменять там дату, приплюсовать 7, но тогда он плюсует всё. И первую неделю и вторую. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Вот вызов Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 14:37 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94, шо опять 1) в году не один отпуск 2) отпуск с с декабря по январь на таких данных ваш вызов неправильно пашет Код: 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. зы 1) недель не 52 2) нет order by ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 15:08 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., А как должно быть правильно? Это надо вызов функции переправлять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 15:17 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax..Norman94, шо опять ...... stax прям с языка снял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 15:19 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax И очень странно, что у вас неправильно выводит. У меня так. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. И вывод на картинке. У расставлены у 1-5 недель ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 15:21 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax И очень странно, что у вас неправильно выводит. У меня так. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. И вывод на картинке. У расставлены у 1-5 недель ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 15:21 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94stax.., А как должно быть правильно? Это надо вызов функции переправлять? я не знаю, могу только догадыватся если отпусков несколько, напр 3 отпуска то что надо? ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 15:25 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax..Norman94stax.., А как должно быть правильно? Это надо вызов функции переправлять? я не знаю, могу только догадыватся если отпусков несколько, напр 3 отпуска то что надо? ...... stax А если где-то отгул взял то вообще молодец будет .... А если одна неделя отпуска? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 15:32 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., Нет нет, учебный отпуск один. Интервал его обозначается неделями, то бишь N1, N2, N3 и т.д. Они преобразованы в даты, то есть число и месяц начала недели. Как бы круто, но есть изъян - интервал отпуска это 1 и последняя дата, а 1 дата - это начало недели, а последний - это конец, то есть воскресенье последней помеченной "у" недели. И я не знаю как это реализовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 15:32 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, Для отгула есть отдельная функция. А если одна неделя, то её начало и её конец. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 15:33 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94stax И очень странно, что у вас неправильно выводит. У меня так. у сотрудника 111 в 2017 году два отпуска Код: 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. Ваш вызов говорит о другом ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 15:36 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94, В отпуск только с понедельника(воскреснья) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 15:41 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., Странно. Причём у вас он по воскресениям ищет. В любом случае подскажите как решить мою проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 15:42 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
123йй, Да, только с понедельника. А заканчиваться должен в воскресенье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 15:42 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94, если отпуск токо один то два варианта 1) менять ф-цию 2) менять вызов если 2 то примерно так 1) regexp_substr ( get_week_list3(t.kod_sotr,t.god), ' [^;]*;$') в дату 2) +7 дней 3) least 4) опять в DD MON ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 15:51 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., Попытался так сделать, неверно. Код: sql 1. 2. 3. И я не могу понять куда Least вставлять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 16:04 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94stax.., Попытался так сделать, неверно. Код: sql 1. 2. 3. И я не могу понять куда Least вставлять тогда не там +7 ставишь to_char(to_date(regexp_substr ( get_week_list3(t.kod_sotr,t.god), ' [^;]*;$')), 'dd.mon')+7,'dd.mon') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 16:10 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94, и на конец года проверить надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 16:11 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, Код: sql 1. Он на позицию , +7 ругается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 16:18 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94MaximaXXL, Код: sql 1. Он на позицию , +7 ругается попробуй + interval '7' day ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 16:24 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
MaximaXXLNorman94MaximaXXL, Код: sql 1. Он на позицию , +7 ругается попробуй + interval '7' day to_char(to_date(regexp_substr ( get_week_list3(t.kod_sotr,t.god), ' [^;]*;$')), 'dd.mon')+ interval '7' day) Ошибка: invalid data type for datatime ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 16:34 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94 to_char(to_date(regexp_substr ( get_week_list3(t.kod_sotr,t.god), ' [^;]*;$')), 'dd.mon')+ interval '7' day) Ошибка: invalid data type for datatime может тогда правильно писать будем? Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 16:54 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, Пробовал, он ругается на запятую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 17:17 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94MaximaXXL, Код: sql 1. Он на позицию , +7 ругается 4 скобки открыли, 5 закрыли... но при этом без "+7" оно работало. Шайтаны просто :D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 17:38 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
j2k, Да нет, всё правильно. И при этом он зачем то скобку требует. Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 17:45 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39448765&tid=1885927]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
176ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 505ms |

| 0 / 0 |
