|
|
|
Дни отпуска
|
|||
|---|---|---|---|
|
#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 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Чтож раз с вызовом не получается, то как быть с изменением функцией? Вот он ищет отпуска по литре б. Даже если их 1-2-3 отпуска, не важно. Принцип такой же, так же переименовывает даты. Вызов стандартный, там даже менять нечего. Поэтому такой вопрос: если менять дату в функции, то как? Я пытался поставить +7, но он тогда ВСЕ даты прибавляет на семь, а надо последний интервал. Код: 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. Как здесь быть, скажите пожалуйста? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 17:51 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94j2k, Да нет, всё правильно. И при этом он зачем то скобку требует. Код: plsql 1. 2. 3. ох, давайте по кускам: 1) Код: plsql 1. - начало вашего столбца 2) Код: plsql 1. - две открыли, две закрыли (т.е. тут у вас какая-то строка) 3) Код: plsql 1. - добавили еще строку 4) Код: plsql 1. - 4 открыли, 4 закрыли (получили СТРОКУ) 5) Код: plsql 1. к СТРОКЕ добавляете интервал 6) Код: plsql 1. - закрываете первую скобку с непонятным синтаксисом Стало яснее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 17:54 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94j2k, Да нет, всё правильно. И при этом он зачем то скобку требует. Код: plsql 1. 2. 3. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ps добавить least ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 17:57 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94, нет под рукой базы - пишу на форуме попробуй так: Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 17:58 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, Без толку. Теперь он пишет date format picture ends before converting entire input string ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 18:01 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., Код: sql 1. 2. 3. Во, спасибо Вам. И вам MaximaXXL Теперь же мне как то нужно совместить это с той функцией, что я бросил выше. Куда здесь это можно подставить? Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 18:05 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94, я ж Вам кинул "работающий" вариант ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 18:05 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94stax.., [src sql] Во, спасибо Вам. И вам MaximaXXL Теперь же мне как то нужно совместить это с той функцией, что я бросил выше. Куда здесь это можно подставить? імхо проще переписать ф-цию, выбросив динамику ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 18:09 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., ну тот работающий вариант работает для вызова тех одиночных интервалов. А вызов у другой функции, который ловит интервалы, там не привяжешь. Или я что то упускаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 18:10 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94stax.., ну тот работающий вариант работает для вызова тех одиночных интервалов. А вызов у другой функции, который ловит интервалы, там не привяжешь. Или я что то упускаю? упускаете Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. гляньте если интервал одна неделя, что менять будете? ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 18:17 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94, SELECT t.god, u.FIO, to_char((to_date(regexp_substr (week_fun2(t.kod_sotr,t.god)),'DD MON";"')+6),'dd mon";"') as внеочередной FROM GRAFIK t, USERS u where t.KOD_SOTR = 109909 and t.kod_sotr = u.KOD_SOTR; То бишь так пишет, что нет аргументов. Значит надо что то менять в функции, но не могу додуматься, что именно. Подскажите пожалуйста! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 18:18 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., Ну если одна неделя, то он пишет, что нехватает чисел. Здорово. И что тут теперь писать? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Тут надо строку Код: sql 1. 2. менять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 18:22 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94stax.., Тут надо строку менять? нет потому что поменяет всем, у Вас нет признака конца непрыревного интервала ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 18:29 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., А что же тогда делать? В вызове копаться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 18:30 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., ой непрыревного = неперервного ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 18:33 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94, перепИсать ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 18:35 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., Подскажите пожалуйста, что конкретно надо переписать здесь? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 18:37 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Лдано, шут с той функцией. Мне нужно разобраться с этой, здесь он ищет интервалы и выводит первую и последнюю неделю отпуска. А надо чтобы выводило начало отпуска (1 число недели) и конец (воскресенье последней недели). Но как бы я не пытался, он у меня либо всё преобразует в воскресенье, либо ничего. Помогите разобраться, что здесь надо поменять? Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 19:10 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94, Забыл сказать важную вещь. В таблице у меня под неделями стоят буквы, обозначающие недели, по которым функция вытаскивает недели, и, заодно преобразует названия столбцов N(любое число) в соответствующее число месяца. То есть получается, что у меня отпуск выходит с 15 мая по 29 мая. Но 29 мая это последняя неделя, а значит нужно не 29 мая, а 4 июня. Подскажите как это реализовать в функции выше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2017, 19:48 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., Простите, у вас есть какие нибудь идеи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 07:34 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94То есть получается, что у меня отпуск выходит с 15 мая по 29 мая. скорей бы уже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 08:56 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94stax.., Простите, у вас есть какие нибудь идеи? переписать (без EXECUTE IMMEDIATE) pl/sql, так как нюансов у Вас повылазит много напр в Украине 8.9 выходные, 13-го рабочій у Вас когда неделя начнется/закончится? ....... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 09:01 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax..Norman94stax.., Простите, у вас есть какие нибудь идеи? переписать (без EXECUTE IMMEDIATE) pl/sql, так как нюансов у Вас повылазит много напр в Украине 8.9 выходные, 13-го рабочій у Вас когда неделя начнется/закончится? А как отсюда EXECUTE IMMEDIATE убрать? Код: 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. Ну мы выходные в рассчёт не берем, так что понедельник начинается с 15 числа, а заканчивается 21. То же самое с отпуском, то есть начало - это первое число недели, последнее - конец. Я даже ума не приложу как это реализовать. ....... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 09:10 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., Тьфу то есть Ну мы выходные в рассчёт не берем, так что понедельник начинается с 15 числа, а заканчивается 21. То же самое с отпуском, то есть начало - это первое число недели, последнее - конец. Я даже ума не приложу как это реализовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 09:11 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94так что понедельник начинается с 15 числа, а заканчивается 21. Код: plsql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 09:38 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94так что понедельник начинается с 15 числа, а заканчивается 21 а вторник начинается с 22 по ....? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 09:40 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94stax.., Тьфу то есть Ну мы выходные в рассчёт не берем, так что понедельник начинается с 15 числа, а заканчивается 21. То же самое с отпуском, то есть начало - это первое число недели, последнее - конец. Я даже ума не приложу как это реализовать. я б загнав 53 N в масив, а там уже что угодно можно конечно и ф-цию менять, но то к ххl ps не надо боятся влоб перечислять 53поля таблицы, в етом нет никакого крамола ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 09:40 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
123ййNorman94так что понедельник начинается с 15 числа, а заканчивается 21. Код: plsql 1. 2. 3. 4. 5. Ого, интересно. Но получится ли это совместить с этой строкой? Код: sql 1. 2. 3. 4. (взято из контекста функции выше) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 09:45 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., В этом вся беда - динамика - главное требование. Я бы и сам не заморачивался со всем этим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 09:46 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
123ййNorman94так что понедельник начинается с 15 числа, а заканчивается 21. Код: plsql 1. 2. 3. 4. 5. iw week of year (1-52 or 1-53 ) based on the ISO standard. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 09:48 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., может предложишь за него все сделать ? с учетом автор В этой таблице есть столбцы год, код сотрудника и 52 столбца ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 09:52 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
В общем попытался изменить изменение названия столбца в даты в соответствии с тем, что кинули выше Код: plsql 1. 2. 3. 4. 5. Но ошибка в missing right parameters ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 09:56 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94, А напомни, откуда взялось требование про динамику в задаче со статичными условиями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 09:58 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94stax.., В этом вся беда - динамика - главное требование. Я бы и сам не заморачивался со всем этим. можно ж и EXECUTE IMMEDIATE 'declare ... begin ... end;' ps если чесно странные у Вас требования, и главное Вы упорно игнорируете что в году 53 недели ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 10:01 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax..Norman94stax.., В этом вся беда - динамика - главное требование. Я бы и сам не заморачивался со всем этим. можно ж и EXECUTE IMMEDIATE 'declare ... begin ... end;' ps если чесно странные у Вас требования, и главное Вы упорно игнорируете что в году 53 недели ..... stax А пример можно? Да я не игнорю, я просто забываю об этом) Да, 53 недели) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 10:02 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. Missing keyword :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 10:14 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94stax..пропущено... можно ж и EXECUTE IMMEDIATE 'declare ... begin ... end;' ps если чесно странные у Вас требования, и главное Вы упорно игнорируете что в году 53 недели ..... stax А пример можно? Да я не игнорю, я просто забываю об этом) Да, 53 недели) Вам простенький селект (один из 5000 на непрывные интервалы) добавте любимую Вами динамику Код: 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. зы если не получится, я добавлю EXECUTE IMMEDIATE ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 10:50 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
У меня не получается совместить ваш метод с динамикой. То есть я не могу понять куда подставлять LISTAGG WITHIN GROUP и т.д. Я с этой пытаюсь совместить Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 10:57 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94, счас сделаю дайте токо строк, будет Вам и белка и свисток ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 11:00 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., Cтойте, я ошибся, нужно с этой совместить Код: 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. Строки строки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 11:03 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94, Вот тебе твой селект, жаль сам не за хотел разобраться как он работает Код: 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. Kod_Sort vacation 1 01 jan-07 jan; 15 jan-28 jan; 12 feb-11 mar; 2 08 jan-28 jan; 05 feb-11 mar; 3 01 jan-28 jan; 12 feb-04 mar; 4 01 jan-07 jan; 15 jan-28 jan; 12 feb-18 mar; Теперь САМ переведи его в динамику и пользуй но лучше разберись КАК он работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 11:43 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, Спасибо большое! Я перевёл в динамический, но теперь он пишет missing expresion Подскажите, где я ошибся? Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 11:52 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94stax.., Cтойте, я ошибся, нужно с этой совместить Код: 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. Строки строки... в чем разница? почему минус 6 (*7 -6)? Код: 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. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 11:56 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94MaximaXXL, Спасибо большое! Я перевёл в динамический, но теперь он пишет missing expresion Подскажите, где я ошибся? Код: 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. /* God, Kod_sotr, */, - лишняя запетуха ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 11:58 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax..with u as ( --разворачиаем недели вертикально сначала свернем недели а потом развернем их ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 12:06 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, stax.. Я безмерно благодарен вам. Я поднастроил всё под себя, взяв от одного варианта и другого, теперь всё получилось! автор почему минус 6 (*7 -6)? Прикол в том, что он начинал отсчёт не с понедельника, а с воскресенья. Видимо что то с системными датами напутано.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 12:10 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94, MaximaXXL Если не сложно помогите понять эти строки авторcase when lead(Week_Number) over(PARTITION by God order by Kod_sotr) - Week_number > 1 then /*Weeks*/Weeks_D||';' when lead(Week_Number) over(PARTITION by God order by Kod_sotr) is null then /*Weeks*/Weeks_D||';' when lag(Week_Number) over(PARTITION by God order by Kod_sotr) is null then /*Weeks*/Weeks_D||',' when Week_number - lag(Week_Number) over(PARTITION by God order by Kod_sotr) > 1 then /*Weeks*/Weeks_D||',' else null end lag_WN Что здесь происходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 12:16 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
123ййstax..with u as ( --разворачиаем недели вертикально сначала свернем недели а потом развернем их ? можна по разному, ето один из вариантов, мне кажется самым простым ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 12:23 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94MaximaXXL, stax.. Я безмерно благодарен вам. Я поднастроил всё под себя, взяв от одного варианта и другого, теперь всё получилось! автор почему минус 6 (*7 -6)? Прикол в том, что он начинал отсчёт не с понедельника, а с воскресенья. Видимо что то с системными датами напутано.. ето ЗАГОТОВКА, надо допиливать под себя напр конец недели я добавлял 5, но мож надо 4 или 6 наскоко помню первая неделя у вас хитрая (greatest ...), соответственно окончание надо тож доработать с "приколом -6" надо разобраться, в 2018 и далее все будет хорошо? и тд ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 12:30 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax..Norman94MaximaXXL, stax.. Я безмерно благодарен вам. Я поднастроил всё под себя, взяв от одного варианта и другого, теперь всё получилось! пропущено... Прикол в том, что он начинал отсчёт не с понедельника, а с воскресенья. Видимо что то с системными датами напутано.. ето ЗАГОТОВКА, надо допиливать под себя напр конец недели я добавлял 5, но мож надо 4 или 6 наскоко помню первая неделя у вас хитрая (greatest ...), соответственно окончание надо тож доработать с "приколом -6" надо разобраться, в 2018 и далее все будет хорошо? и тд ...... stax А сейчас с этим балуюсь Доработал эти строчки Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Но выскакивает ошибка too many precision specifiers В чём может быть дело? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 12:43 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax..наскоко помню первая неделя у вас хитрая (greatest ...), соответственно окончание надо тож доработать ...... stax подправил Код: 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. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 12:51 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., А посмотрите в чём у меня может быть ошибка? Почему он ругается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 12:52 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94 А сейчас с этим балуюсь Доработал эти строчки Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Но выскакивает ошибка too many precision specifiers В чём может быть дело? нельзя trunc 'dd mon' ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 12:58 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. stax.., Это в какой строчке из? Код: sql 1. 2. Покажите пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 13:03 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94Norman94 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. stax.., Это в какой строчке из? [/src] Покажите пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 13:14 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., Я немного поменял строки на Код: sql 1. 2. Теперь он пишет, что ожидал число а получил дату. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 13:14 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., Но у юзера, что кинул выше в оригинале строки выглядят так, и они работают Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 13:15 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. И даже так теперь не работает. Не могу понять почему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 13:32 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax..можна по разному, ето один из вариантов, мне кажется самым простым под рукой только 10 и напильник забыл дома Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 13:33 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94stax.., Я немного поменял строки на Код: sql 1. 2. Теперь он пишет, что ожидал число а получил дату. я ж не знаю что Вы хотите получить зачем to_date(to_date? ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 13:33 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., Понимаете, я хочу, что у меня функция воспринимала даты именно в соответствии с годом. Я знаю что это делается с помощью greatest Вот строки как выглядят в оригинале: Код: sql 1. 2. Я не могу сообразить как greatest сюда подкрутить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 13:37 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94, Как и раньше, сначала greatest от дат, а уже потом преобразование в строку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 13:44 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
envNorman94, Как и раньше, сначала greatest от дат, а уже потом преобразование в строку Я так и пытаюсь сделать, вот Код: sql 1. 2. Но он пишет, что ждал число, а получил дату ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 13:47 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94envNorman94, Как и раньше, сначала greatest от дат, а уже потом преобразование в строку Я так и пытаюсь сделать, вот Код: sql 1. 2. Но он пишет, что ждал число, а получил дату ps Код: plsql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 13:54 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax..Norman94пропущено... Я так и пытаюсь сделать, вот Код: sql 1. 2. Но он пишет, что ждал число, а получил дату ps Код: plsql 1. 2. 3. 4. 5. Код: sql 1. 2. Missing right parameters ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 13:58 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
иииииииии Код: sql 1. 2. Ждал дату, а получил число. Что за чертовщина! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 14:00 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94Ждал дату, а получил число. Что за чертовщина! где закрывающая скобка для greatest ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 14:04 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
123йй, Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 14:05 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
123ййNorman94Ждал дату, а получил число. Что за чертовщина! где закрывающая скобка для greatest ? Короче вот она Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 14:05 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
123ййNorman94Ждал дату, а получил число. Что за чертовщина! где закрывающая скобка для greatest ? Тьфу ты, не умею в цвета to_char(greatest(trunc (to_date(god,'yyyy')+(to_number(ltrim(weeks,'N'))-1)*7,'dd mon')),to_date(god, 'yyyy'),'dd mon') Begin_Week, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 14:06 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Ладно, ошибка больше не выпадает, однако он теперь ОПЯТЬ начисто игнорирует воскресенья. Вообще. То есть теперь всё как раньше. Что я не так делаю? Вот строки в оригинале: Код: sql 1. 2. А вот изменённые. Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 14:09 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94123ййпропущено... где закрывающая скобка для greatest ? Тьфу ты, не умею в цвета to_char(greatest(trunc (to_date(god,'yyyy')+(to_number(ltrim(weeks,'N'))-1)*7,'dd mon')),to_date(god, 'yyyy'),'dd mon') Begin_Week, а надо to_char(greatest(trunc (to_date(god,'yyyy')+(to_number(ltrim(weeks,'N'))-1)*7,' dd mon '),to_date(god, 'yyyy')),'dd mon') Begin_Week,[/quot] ......... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 14:10 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax..Norman94пропущено... Тьфу ты, не умею в цвета to_char(greatest(trunc (to_date(god,'yyyy')+(to_number(ltrim(weeks,'N'))-1)*7,'dd mon')),to_date(god, 'yyyy'),'dd mon') Begin_Week, а надо to_char(greatest(trunc (to_date(god,'yyyy')+(to_number(ltrim(weeks,'N'))-1)*7,' dd mon '),to_date(god, 'yyyy')),'dd mon') Begin_Week, ......... stax[/quote] Да да, я так сделал, но теперь всё сломалось, функция как и раньше снова считает по первым дням, а не заглядывает в последние дни, как до greatest. Вообще не понимаю в чём дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 14:14 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94Ладно, ошибка больше не выпадает, однако он теперь ОПЯТЬ начисто игнорирует воскресенья. Вообще. То есть теперь всё как раньше. Что я не так делаю? Вот строки в оригинале: Код: sql 1. 2. А вот изменённые. Код: sql 1. 2. что за воскресенья? я ж Вам кинул подправленный вариант 20460313 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 14:15 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94stax..пропущено... а надо to_char(greatest(trunc (to_date(god,'yyyy')+(to_number(ltrim(weeks,'N'))-1)*7,' dd mon '),to_date(god, 'yyyy')),'dd mon') Begin_Week, ......... stax Да да, я так сделал, но теперь всё сломалось, функция как и раньше снова считает по первым дням, а не заглядывает в последние дни, как до greatest. Вообще не понимаю в чём дело.[/quot] оракляча фіча to_date(god, 'yyyy') счас ето май ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 14:18 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Ваш вариант я использовал в другом месте. Я уже писал, что в функции которая ищет отпуска по интервалам надо сделать - начало - 1 число недели, конец - воскресенье последней недели отпуска. В этом посту 20460027 юзер привёл отличный пример, но к его подсчётам у меня не получается прикрутить greatest. Точнее, прикрутить получилось, но всё задание слито на корню. А до greatest всё работало как надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 14:18 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Я даже не могу понять, в чём дело. Без greatest всё работало как надо, а с ней - он выдаёт чёрти что. Он даже недели не правильно выводит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 14:45 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94Ваш вариант я использовал в другом месте. Я уже писал, что в функции которая ищет отпуска по интервалам надо сделать - начало - 1 число недели, конец - воскресенье последней недели отпуска. В этом посту 20460027 юзер привёл отличный пример, но к его подсчётам у меня не получается прикрутить greatest. Точнее, прикрутить получилось, но всё задание слито на корню. А до greatest всё работало как надо. запутался я если неделя начинается в понедельник то воскресенье +6 Код: plsql 1. 2. 3. 4. 5. 6. если я Вас понимаю, то greatest нужен для первой недели января ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 14:46 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax..Norman94Ваш вариант я использовал в другом месте. Я уже писал, что в функции которая ищет отпуска по интервалам надо сделать - начало - 1 число недели, конец - воскресенье последней недели отпуска. В этом посту 20460027 юзер привёл отличный пример, но к его подсчётам у меня не получается прикрутить greatest. Точнее, прикрутить получилось, но всё задание слито на корню. А до greatest всё работало как надо. запутался я если неделя начинается в понедельник то воскресенье +6 Код: plsql 1. 2. 3. 4. 5. 6. если я Вас понимаю, то greatest нужен для первой недели января ...... stax Не только для первого января, но и чтобы он года различал. Для 2017 он всё выводит как надо. Например я поставил О для 3 недель в 2017 и 2016. В 2017 всё правильно - с 8 мая до 4 июня. Для 2016 вообще треш - 7 мая по 3 июня. Это не правильно. Пожалуйста, скажите, как грамотно применить greatest для этих строк Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 14:50 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94stax..пропущено... запутался я если неделя начинается в понедельник то воскресенье +6 Код: plsql 1. 2. 3. 4. 5. 6. если я Вас понимаю, то greatest нужен для первой недели января ...... stax Не только для первого января, но и чтобы он года различал. Для 2017 он всё выводит как надо. Например я поставил О для 3 недель в 2017 и 2016. В 2017 всё правильно - с 8 мая до 4 июня. Для 2016 вообще треш - 7 мая по 3 июня. Это не правильно. Пожалуйста, скажите, как грамотно применить greatest для этих строк Код: sql 1. 2. почти Ваша тема Определить дату по номеру недели если первая неделя - неделя с первым четвергом года если для 2016 года выводится неправильно, надо найти причину, я не могу понять зачем Вам greatest для конца інтервала авторДля 2016 вообще треш - 7 мая по 3 июня. Это не правильно. ето для какой недели? и как правильно? ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 15:06 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax..Norman94пропущено... Не только для первого января, но и чтобы он года различал. Для 2017 он всё выводит как надо. Например я поставил О для 3 недель в 2017 и 2016. В 2017 всё правильно - с 8 мая до 4 июня. Для 2016 вообще треш - 7 мая по 3 июня. Это не правильно. Пожалуйста, скажите, как грамотно применить greatest для этих строк Код: sql 1. 2. почти Ваша тема Определить дату по номеру недели если первая неделя - неделя с первым четвергом года если для 2016 года выводится неправильно, надо найти причину, я не могу понять зачем Вам greatest для конца інтервала авторДля 2016 вообще треш - 7 мая по 3 июня. Это не правильно. ето для какой недели? и как правильно? ...... stax Ну когда я ставлю greatest, он мало того, что считает с 1 января, так ещё и даты других годов учитывает. Это с 19-22 неделю. И правильнее будет не 7 мая по 3 июня А со 2 по 29 мая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 15:10 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 15:11 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94, Мне кажется Вы всех запутали и себя в первую очередь вот это я Вам предложил когда вы сказали что во ВСЕХ годах первая неделя это 01.01-07.01 Код: plsql 1. Сейчас вы пишите что неделя ДОЛЖНА зависеть от года: то есть ПЕРВАЯ неделя 2017 это 01.01-01.01 - т.к. первая неделя года была воскресенье только. Определитесь на листочке ЧТО вы хотите видеть и изложите с листочка проблему, а не фразами 18 неделя не правильно определилась, тут мало кто будет 18 высчитывать. Для первой - второй определитесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 15:36 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94Ну когда я ставлю greatest, он мало того, что считает с 1 января, так ещё и даты других годов учитывает. Это с 19-22 неделю. И правильнее будет не 7 мая по 3 июня А со 2 по 29 мая Ваша ф-ция считает начало первой недели 01 января вторая неделя начинается с 08 января (не с понедельника) to_char(trunc(to_date(god,'yyyy'),'y')+(to_number(ltrim(weeks,'N'))-1)*7 +1 ,'dd mon') Begin_Week, to_char(trunc(to_date(god,'yyyy'),'y')+(to_number(ltrim(weeks,'N'))-1)*7 +7 ,'dd mon') End_week 1) зачем плюс 1 я не знаю 2) +7 ето начало след недели, а не конец greatest сдесь нипричем, ф-ция (выражение) по другому считает недели сравните с trunc (to_date(god||'0101', 'yyyymmdd')+(weeks-1)*7, 'iw') ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 15:42 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, Да, во всех годах первая неделя (и да, в 2017 это 1 неделя - это 1 января, так правильно), но при этом надо, чтобы он недели показывал в соответствии с их положение в году! То есть как я уже написал выше я ставлю О (то есть отпуск) в 18-21 неделе. В 2017 году - он должен вывести (и выводит!) 8 мая - 4 июн. Это правильно. Однако теперь я в таблице ставлю О для 2016 года, именно на тех неделях. И он должен вывести не с 7 по 3 июня, а 2 по 29 мая. Для 2015 это уже будут другие числа. Я так пытался сделать с помщью greatest, но.. Не выходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 15:43 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax..1) зачем плюс 1 я не знаю 2) +7 ето начало след недели, а не конец ..... stax Когда их не было, он считал 1 числа недели не за понедельник, а за воскресенье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 15:45 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.. 1) зачем плюс 1 я не знаю 2) +7 ето начало след недели, а не конец ..... stax звиняюсь запутался я, надо +1 и соответственно +1+6=7 ps также не понимаю зачем Вам столько ф-ций, одной ж достаточно, добавив парамер "тип отпуска" (о,у,к ...) ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 15:48 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax..ps также не понимаю зачем Вам столько ф-ций, одной ж достаточно, добавив парамер "тип отпуска" (о,у,к ...) ..... stax Ну я так и сделаю) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 15:49 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94stax..1) зачем плюс 1 я не знаю 2) +7 ето начало след недели, а не конец ..... stax Когда их не было, он считал 1 числа недели не за понедельник, а за воскресенье. не так, Вам просто повезло что 2017 начинался в воскресенье ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 15:51 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
MaximaXXLNorman94, Мне кажется Вы всех запутали и себя в первую очередь вот это я Вам предложил когда вы сказали что во ВСЕХ годах первая неделя это 01.01-07.01 Код: plsql 1. Сейчас вы пишите что неделя ДОЛЖНА зависеть от года: то есть ПЕРВАЯ неделя 2017 это 01.01-01.01 - т.к. первая неделя года была воскресенье только. Определитесь на листочке ЧТО вы хотите видеть и изложите с листочка проблему, а не фразами 18 неделя не правильно определилась, тут мало кто будет 18 высчитывать. Для первой - второй определитесь. Извините, я опять запутал. Вот как надо. В любом году 1 неделя начинается с 1 января. В 2017 году - 1 неделя - это 1 января, вторая 2-8 и т.д. В 2016 1 неделя - 1 января - 3 января и т.д. При этом положение недель (то есть первые числа недели) должны быть в соответствии с оным в году. Как я уже написал выше с маем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 15:53 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., Да, поэтому я пытаюсь привязать greatest, но не выходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 15:54 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94, Код: plsql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 16:04 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94stax.., Да, поэтому я пытаюсь привязать greatest, но не выходит. 20460313 еще раз greatest нужен для "первой" недели, шоб получіть первое января для того чтоб неделя начиналась с понедельника надо trunc(xxx,'iw') ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 16:04 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94stax..1) зачем плюс 1 я не знаю 2) +7 ето начало след недели, а не конец ..... stax Когда их не было, он считал 1 числа недели не за понедельник, а за воскресенье. Какой день недели считать первым зависит от параметра NLS_TERRITORY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 16:05 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
123ййNorman94, Код: plsql 1. 2. 3. 4. 5. 6. Хорошо, намёк я понял, а как мне в эти строки всё подстроить? Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 16:06 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax..Norman94stax.., Да, поэтому я пытаюсь привязать greatest, но не выходит. 20460313 еще раз greatest нужен для "первой" недели, шоб получіть первое января для того чтоб неделя начиналась с понедельника надо trunc(xxx,'iw') ..... stax Но даже если не обращать внимания на greatest, как мне заставить эти строчки считать числа интервалов в зависимости от года? как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 16:07 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
MaximaXXLNorman94пропущено... Когда их не было, он считал 1 числа недели не за понедельник, а за воскресенье. Какой день недели считать первым зависит от параметра NLS_TERRITORY Это как то можно сюда вставить? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 16:08 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Вот пример из другой функции. Здесь считает и о 1 января, и недели у него начинаются как должны начинаться в определённом году Код: sql 1. 2. 3. 4. 5. 6. Как мне здесь подобное изобразить? Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 16:11 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94Хорошо, намёк я понял, а как мне в эти строки всё подстроить если, почти за два месяца, не можешь решить задачу, то за 5 мин тебе ее не объяснить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 16:12 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94Хорошо, намёк я понял Я понял - это намёк, я всё ловлю на лету, но непонятно, что конкретно ты имело в виду? Это курсовая или тебе платят за время проведённое над задачей, а не за результат? Убери руки от клавиатуры и сформулируй свою задачу на бумаге так, чтобы ты мог её объяснить 12-летнему ребёнку. пока не получится - клавиатуру не трогай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 16:18 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
env, Я уже написал всю задачу ниже. Ещё раз, чётко и перефразировано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 16:20 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94Вот пример из другой функции. Здесь считает и о 1 января, и недели у него начинаются как должны начинаться в определённом году Код: sql 1. 2. 3. 4. 5. 6. Как мне здесь подобное изобразить? Код: sql 1. 2. Код: plsql 1. 2. 3. 4. 5. 6. 7. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 16:35 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94Ещё раз, чётко и перефразировано. Не нашёл. Пока что общение идёт строго в духе : Задача ТС - построить будку собаке. ТС: Я слышал, что небоскрёбы можно строить из дерева [spoiler - на самом деле можно], поэтому я взял сосновую вагонку, осиновые колышки и ивовую кору, чтобы их связывать. Как связать колышек с доской, если у меня кора выскальзывает из рук? Форумчане: Что ты хочешь построить? Может стоит использовать кирпич или брёвна? Форумчане: В принципе, можно натереть руки песком, тогда кора будет меньше выскальзывать! ТС: "Что ты хочешь построить?" Я же сказал, я хочу связать доски с колышками! Корой! И от песка она уже почти не выскальзывает! Как мне теперь первые доски связать колышками?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 16:42 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax..Norman94Вот пример из другой функции. Здесь считает и о 1 января, и недели у него начинаются как должны начинаться в определённом году Код: sql 1. 2. 3. 4. 5. 6. Как мне здесь подобное изобразить? Код: sql 1. 2. Код: plsql 1. 2. 3. 4. 5. 6. 7. ..... stax Я так уже пробовал. Выпадает ошибка missing right parenthesis ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 17:29 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
envNorman94Ещё раз, чётко и перефразировано. Не нашёл. Пока что общение идёт строго в духе : Задача ТС - построить будку собаке. ТС: Я слышал, что небоскрёбы можно строить из дерева [spoiler - на самом деле можно], поэтому я взял сосновую вагонку, осиновые колышки и ивовую кору, чтобы их связывать. Как связать колышек с доской, если у меня кора выскальзывает из рук? Форумчане: Что ты хочешь построить? Может стоит использовать кирпич или брёвна? Форумчане: В принципе, можно натереть руки песком, тогда кора будет меньше выскальзывать! ТС: "Что ты хочешь построить?" Я же сказал, я хочу связать доски с колышками! Корой! И от песка она уже почти не выскальзывает! Как мне теперь первые доски связать колышками?! Имеется таблица Отпуска со столбцами код сотрудника, год и 53 столбца, обозначающих недели в году. Выглядят как N1, N2 и т.д. Есть длинная динамическая функция (спасибо юзеру Максим), который динамически пробегает по столцам и вытаскивает только те, что имеют значения "о" (то есть отпуск). Причём, вытаскивает первую и последнюю неделю. Так же названия столбцов переименованы в числа и месяца в году в соответствии с положением недели. Однако нужно чтобы: 1. Если интервал - то начало - это число начала недели, а конец - воскресенье последней недели. 2. Нужно, чтобы выводились даты в соответствии с их годами. Например столбцы 19-22 в 2017 году - это 8 мая - 4 июня, а в 2016 году - 2 мая - 29 мая. Вот длинная функция. Здесь реализован лишь первый пункт, но только для 2017 года. А для последующих или предыдущих он выводит неверные даты. Код: 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. Помогите реализовать 2 пункт, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2017, 17:35 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94, Не хотите Вы включать мозг, как бы Вас тут не просили на протяжении почти 3 месяцев Я в Вашем коде не видел НИ ОДНОГО комментария (для себя любимого) не думаете а КАК оно работает ... а отвечаете в виде "а как мне подставить в мой недокод и сдать" Вы через неделю ту же задачу со смещением в 1 день не сможете написать, потому что это для Вас это магия, в которой Вам дали в руки маг полочку и сказали одно заклинание хотя пытались объяснить как эти заклинания строить. Вот Вам код, который должен выполнить то что сказал преподаватель, сдайте и забудьте ... Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2017, 10:27 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, Спасибо Вам! На самом деле мне реально интересно как оно работает, я даже спрашивал у вас об этом страницы 2 назад) Правда, расскажите пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2017, 11:00 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
MaximaXXL Код: plsql 1. Говнокодец. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2017, 11:55 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Elic, он идет корнями в прошлое, месяца 2 назад =) раньше было Код: plsql 1. но тогда я God перевел как Бог/Идол и подумаю что там храняться идентификаторы клиентов т.к. никогда не пользовал названия полей в транслите. потом осознав "свою" ошибку хотел переписать но увидел КАК его используют Код: plsql 1. 2. т.е. на вход идет таблица из 1 записи .... я немного растроился и в очередную правку просто выкинул нечитабельное (раздражаемое) поле God ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2017, 08:27 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
MaximaXXLраньше былоА как же rt-tr? И зачем повышать энтропию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2017, 08:37 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94, Неужели ты наконец-то согласился на запрос без динамики? Свершилось.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2017, 09:36 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
env, Код: plsql 1. 2. 3. .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2017, 09:58 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
envNorman94, Неужели ты наконец-то согласился на запрос без динамики? Свершилось.. Нет, он его потом в динамику переписывает ElicА как же rt-tr? И зачем повышать энтропию? согласен, тогда правильнее так: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2017, 10:00 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Станислав, я про 20466230 и предшествующее ТС даже не заикнулся, как обычно раньше, что ему нужна динамика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2017, 11:01 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Станислав, а также сравни с предложенным ещё в марте 20305014 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2017, 11:04 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
envСтанислав, а также сравни с предложенным ещё в марте 20305014 та я уже не знаю, что и сравнивать Вариантов предложили массу Тут вопрос скорее к преподавателю, мож он хочет заставить Нормана разобраться в запятих ps я яж теперь понял что ето лаба ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2017, 11:41 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax, пожалуйста, объясните подробнее эти строки. Мне чисто интересно узнать что в них происходит Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 07:34 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94stax, пожалуйста, объясните подробнее эти строки. Мне чисто интересно узнать что в них происходит Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 1) u.* берем все поля із u, наслидок моего лентяйства, правильно перечислять нужные поля 2)іщем понедельник (передыдущий понедельник) trunc (to_date(god||'0101', 'yyyymmdd')+(weeks-1)*7, 'iw') Код: plsql 1. 2. 3. 4. 5. но Код: plsql 1. 2. 3. 4. 5. но год вам Вам не подходит, поетому плевать на понедельник берем влоб первое число to_date(god||'0101', 'yyyymmdd') начиная со второй недели, надо всегда брать понедельники большую из дат (первое января и что там получится от Nxx) поетому greatest( 3) номеруем (можно было отсортировать и rownum) ,row_number() over (order by weeks) rn будет использоваться для поиска непрырывных интервалов (с хх по уу) где-то так если что-то непонятно написал, спрашивайте, исправлюсь ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 09:40 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., Ага, интересно. Но всё таки почему вы два раза d объявляете? Код: sql 1. 2. 3. 4. А про эти строки расскажите поподробнее, пожалуйста Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 09:58 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94Но всё таки почему вы два раза d объявляете? Norman94 Код: sql 1. 2. 3. 4. комментарий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 10:09 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94stax.., А про эти строки расскажите поподробнее, пожалуйста Код: sql 1. 2. 3. 4. 5. 6. 7. 1) min(d) -начало интервала max(d)- конец интервала trunc(min(d),'y') первое января add_months(trunc(min(d),'y'),12) -первое января след года -1 -31 декабря текущего года trunc(max(d)+7,'iw') следующ понедельник -1 след возкресенье least мінімальное между 31 декабря и вычисленной датой (шоб интервал не оканчивался в первую неделю след года) to_char выводим токо день и месяц listagg в строку разделитель ; within group (order by min(d)) сортіруем по началу интервала 2) from w -из подготовленной выше для наглядности "вюшки" 3)group by god,kod_sotr,d-rn*7 god,kod_sotr лишнее, осталось от прямого селекта d-rn*7 для групировки, интервал меджду соседними/непрерывными записями 7 дней ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 10:38 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., Спасибо!) Значит получается именно в этой строке идет и вычисление понедельника до воскресенья? А так же разделение по интервалам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 10:49 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
Norman94stax.., Спасибо!) Значит получается именно в этой строке идет и вычисление понедельника до воскресенья? А так же разделение по интервалам? не понял вопрос, в какой строке? вычисление понедельника усложнено из-за начала года (понедельник для N01 в предыдущем году) вычисление воскресеннья усложнено із-за конца года (для n52/53 воскресенье может быть в следующем году) "непрырывные интервалы" получаю с помощью group by (интервал 7дней) ...... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 11:56 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
offtop stax..из-за із-за Станислав, а в каких случаях правильно писать "и", а в каких "i"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 12:04 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
envofftop stax..из-за із-за Станислав, а в каких случаях правильно писать "и", а в каких "i"? в любом случаи правильно из-за (не уверен в черточке, но "і" ето от украинского, обычно после переключения на латиницу) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. у меня и так плохая реакция на переключение раскладки, а тут еще привыкаю переключать правыми shift/ctrl из-за новеловского месседжера ps если есть возможность игнорите очепятки, я понимаю что раздражает, и я стараюсь, но часто злоупотребляю халатностью (спешка) ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 12:31 |
|
||
|
Дни отпуска
|
|||
|---|---|---|---|
|
#18+
stax.., Всё, понял, спасибо ещё раз!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 13:35 |
|
||
|
|

start [/forum/topic.php?all=1&fid=52&tid=1885927]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
187ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
147ms |
get tp. blocked users: |
2ms |
| others: | 218ms |
| total: | 597ms |

| 0 / 0 |
