|
|
|
connect by
|
|||
|---|---|---|---|
|
#18+
подскажите. пожалуйста, вот кусочек моего селекта select g.c_main_v_id -- , g.id , g.id_1, g.lnk_acc, g.h , (select count(b1.ID) from ibs.Z#RKO_CUR b1 where b1.C_ACC_TRANS = g.id) A$2 from (select acc_num.c_main_v_id, acc_num.id, acc_num.c_accs_arr, acc.id id_1, lnk.c_account lnk_acc, null h from Z#LINK_ACCS lnk, z#AC_FIN acc, z#AC_FIN acc_num where acc.c_ACCS_ARR = lnk.COLLECTION_ID and lnk.C_VID in (1920715, 9012478) and lnk.c_account = acc_num.id --and acc.id in (46666995947) union select nvl(acc_num.c_main_v_id, lnk.c_acc_num) c_main_v_id, acc_num.id, acc_num.c_accs_arr, acc.id id_1, acc_num.id lnk_acc, null h from Z#LINK_ACCS lnk, z#AC_FIN acc, z#AC_FIN acc_num where acc.c_ACCS_ARR = lnk.COLLECTION_ID and lnk.C_VID in (1920715, 9012478) and lnk.c_acc_num = acc_num.c_main_v_id(+) and acc.c_client_v = acc_num.c_client_v(+) --and acc.id in (46666995947) ) g connect by prior g.lnk_acc = g.id_1 start with g.id_1 = v_AccId(i) -- 46666995947 не могу придумать, как сделать, чтобы , если отобрался lnk.c_acc_num - отмечен красным. то есть вот это условие не отработает- connect by prior g.lnk_acc = g.id_1, как мне тогда продолжить бы выполнение цикла ? то есть в коннект бай задать два альтернативныху словия- чтобы в зависимости от того, пустой или заполненный acc_num.c_main_v_id,- соединение шло по разным веткам. это можно сделать? заранее благодарна. сильно. поверьте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 11:42 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
Озорнитказаранее благодарна. сильно. поверьте.Настолько, что соизволил пренебречь тэгом SRC?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 11:51 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
ElicОзорнитказаранее благодарна. сильно. поверьте.Настолько, что соизволил пренебречь тэгом SRC?! соизволилА ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 11:58 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
Видали мы эту "благодарность" 20858465 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 11:59 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#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. 32. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 12:01 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
ЗаггиВидали мы эту "благодарность" 20858465 так это причем ? там пример, описывающий связь в другую сторону- не от меня к вам , а от вас ко мне. А благодарность- это от меня к вам, к той ситуации отношения не имеет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 12:02 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
Озорнитка, А менее загруженный селект нельзя было придумать? Ну или примерчик набросать? Пока могу сказать: Озорниткаесли отобрался lnk.c_acc_num - отмечен красным. то есть вот это условие не отработает- connect by prior g.lnk_acc = g.id_1 верю на слово, хтоя подразумеваю что отработает но не так как Вам бы хотелось Озорниткато есть в коннект бай задать два альтернативныху словия- чтобы в зависимости от того, пустой или заполненный acc_num.c_main_v_id,- соединение шло по разным веткам. А, извините, какие? Первое prior g.lnk_acc = g.id_1 - вижу (к c_main_v_id отношения не имеет), а второй? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 12:05 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
MaximaXXLОзорнитка, А менее загруженный селект нельзя было придумать? Ну или примерчик набросать? Пока могу сказать: Озорниткаесли отобрался lnk.c_acc_num - отмечен красным. то есть вот это условие не отработает- connect by prior g.lnk_acc = g.id_1 верю на слово, хтоя подразумеваю что отработает но не так как Вам бы хотелось Озорниткато есть в коннект бай задать два альтернативныху словия- чтобы в зависимости от того, пустой или заполненный acc_num.c_main_v_id,- соединение шло по разным веткам. А, извините, какие? Первое prior g.lnk_acc = g.id_1 - вижу (к c_main_v_id отношения не имеет), а второй? все отработает . как надо- поскольку я уже все оттестировала g.lnk_acc = g.id_1 - имеет отношение к c_main_v_id, 1) спускаемся вниз от acc.id: lnk- по collection_id связано с acc (ACCS_ARR =collection_id и все lnk.id , у которых такой колекшен - относятся к acc ), затем у LNK берем ACCOUNT и теперь принимаем его за acc 2) так же спускаемся вниз от acc: тот же lnk, тот же коллекшион, но теперь счет может быть записан не в виде ссылки ACCOUNT, а просто - норме строкой acc_num. Теперь нам надо в фин счетах найти нужный счет и опять принять его за acc/ Проблема в том, что данные могут быть ошибочны и может быть указан номер счета, который в базе не существует, и в таком случае мне хотелось бы в коннект бай указать другое условие аналогичный селект (просто с другими условиями) есть для поиска 'вверх', но его смысла нет приводить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 12:19 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
ну вообще, для моей практической задачи уже все работает , как нужно- несуществующий счет может быть только в самом низу выборки, и сейчас он отбирается благополучно. во втором union (записанный строкой . а не ссылкой в acc_num несуществующий счет), то есть только перенесенный после миграции номер счета для истории . а ошибочных данных - я поискала в базе- вроде как пока нет. но просто стало интересно, а если бы были- то можно ли это сделать одним запросом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 12:27 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
короче, надо было тему под другим ником создать :) а то злопамятные ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 12:52 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
Озорнитка, вникать в прикладную логику Вашего запроса не очень хочеться (в тч напр зачем нужен null h) подготовте тестовые данные с помощую with "c ошибочными данными" и покажите результат: есть/получаю, надо .... мож кто-то и заинтереcуется задачкой/проблемкой, или сами решение найдете на более прозрачных данных ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 12:54 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
да это колонка для селекта поиска вверх, там оно заполняется, а себе сделала одинаковый набор в обоих запросах, чтобы не запутаться блен, я with не пользуюсь никогда :( ну ладно, сделаю, выложу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 13:11 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
loperfооо, таблицы из ЦФТ ;) когда я уже уйду от Цфт :( хочу проста на пл скул.. и еще лучше в придачу с жабой. Ваще была бы счастлива ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 13:58 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
Озорниткаблен, я with не пользуюсь никогда :( не обязательно with, просто удобно можна пойти по официальному пути http://www.sql.ru/forum/rules.aspx При написании сообщений с просьбой о составлении запроса - хорошим тоном считается предоставление скрипта на создание таблицы и заполнение ее тестовыми данными, а также ожидаемого результата выборки, если это не очевидно из вопроса. Например: ... .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 13:59 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
Озорниткакогда я уже уйду от Цфт :( Паспорт отобрали? :D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2017, 14:00 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
Озорнитка, Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2017, 10:23 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
Озорнитка, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Какой вопрос, такой и ответ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2017, 10:29 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
у меня дома нет компа щас, я на работе вечером, када от меня отстанут пользователи, заведу тестовые таблички. Мож у самой получится додуматься :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2017, 12:06 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
env, Можно и так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Если проблема с null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2017, 12:31 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, Case проще расширить, для нескольких условий. Вырожденный случай можно покрыть и более узким решением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2017, 12:35 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
cast(null as number)- это зачем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2017, 19:58 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
Озорниткаcast(null as number)- это зачем Тип поля задает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2017, 20:08 |
|
||
|
connect by
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousОзорниткаcast(null as number)- это зачем Тип поля задает. так и без этого работает оракл неявно преобразует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2017, 20:19 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=139&tid=1884988]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 320ms |

| 0 / 0 |
