|
|
|
Прошу помочь с запросом
|
|||
|---|---|---|---|
|
#18+
Опишу суть есть как всегда две таблицы что досталось с тем и работаю как говориться... в одной table1 хранятся имена файлов (namefile) пример qwe_123.txt имя загруженного файла в БД Во второй table2 Сессия когда этот файл был загружен (nameSes) и в ней храниться чуть другая запись Файл qwe_123.txt Идентификаторов нет, как можно было бы связать записи. одно лишь приходит в голову парсить по именам Что-то подобное думаю но как сделать like в условии where with fName ( /* получаю наименование файла 123*/ select SUBSTR(Namefile, 5, INSTR(Namefile, '.',1,1)-5) from table1 where trunc(data)='19.10.2016' ) select * from ses where CSESNAME like '%fName%' and DateSes='19.10.2016' Заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 07:30 |
|
||
|
Прошу помочь с запросом
|
|||
|---|---|---|---|
|
#18+
maxwait, использовать конкатенацию ( like '%' || fName || '%' ) или заменить like на instr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 07:34 |
|
||
|
Прошу помочь с запросом
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эх, можешь подсказать с синтаксисом что не так у мня? with fName AS ( select SUBSTR(Namefile, 5, INSTR(Namefile, '.',1,1)-5) nn from table1 where trunc(data)='19.10.2016' ) --select nn from fName --так выводит все "ок" select 1 from table2 where SESNAME like '%'||fName||'%' and DDSESDT ='19.10.2016' -- fName : invalid identifier INSTR не получиться применить т.к. имена в table2 могут быть совершенно иными и только номер может быть уникальным как в середине имени так и в начале или конце. думаю like тут больше подходит, но как его правильно применить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 07:45 |
|
||
|
Прошу помочь с запросом
|
|||
|---|---|---|---|
|
#18+
maxwait, приведи тестовые данные в виде WITH t1 as(), t2 as... с парой-тройкой строк на каждую таблицу. а то не совсем понятно, что у тебя есть и чего ты в итоге хочешь получить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 08:15 |
|
||
|
Прошу помочь с запросом
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эх, Вроде сделал сейчас проверяю конечно запрос такой select * from ses where exists (select 1 nn from umb_payfile p where ses.csesname like '%'||SUBSTR(Namefile, 5, INSTR(Namefile, '.',1,1)-5)||'%' ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 08:19 |
|
||
|
Прошу помочь с запросом
|
|||
|---|---|---|---|
|
#18+
в table1 поля fName date qwe_123.txt 11.01.2017 qwe_124.txt 11.01.2017 qwe_125.txt 11.01.2017 qwe_126.txt 11.01.2017 запросом select SUBSTR(Namefile, 5, INSTR(Namefile, '.',1,1)-5) nn from umb_payfile where trunc(data)='11.01.2017' получаю имена файлов 123 124 125 126 и надо сравнить с именами второй таблицы, причем имена в table2 имеют другой вид table2 sesname date asdvqwe_123.txt sdfg_124sadf.txt 125_dfg.txt sdfg126dfg.txt для начала нужно сопоставить, а дальше я уже под свои нужны с проверками запилю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 08:27 |
|
||
|
Прошу помочь с запросом
|
|||
|---|---|---|---|
|
#18+
Вот так принято давать test case. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. В like можно подставить функцию, которая прозрачно работает, а не зубодробительные вложенные instr-substr. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 09:06 |
|
||
|
Прошу помочь с запросом
|
|||
|---|---|---|---|
|
#18+
with t as (select 'qwe_123.txt' name, to_date('11.01.2017', 'dd.mm.yyyy') date1 from dual union all select 'qwe_124.txt' name, to_date('12.01.2017', 'dd.mm.yyyy') date1 from dual union all select 'qwe_125.txt' name, to_date('13.01.2017', 'dd.mm.yyyy') date1 from dual union all select 'qwe_127.txt' name, to_date('20.01.2017', 'dd.mm.yyyy') date1 from dual ), n as ( select 'sesname' namefile from dual union all select 'asdvqwe_123.txt' namefile from dual union all select 'sdfg_124sadf.txt' namefile from dual union all select '125_dfg.txt' namefile from dual union all select 'sdfg126dfg.txt' namefile from dual ) select t.*, n.* from t JOIN n ON REPLACE(TRANSLATE(n.namefile, 'qwertyuiopasdfghjklzxcvbnm_.', RPAD('@', 28,'@' )),'@','') = REPLACE(TRANSLATE(t.name, 'qwertyuiopasdfghjklzxcvbnm_.', RPAD('@', 28,'@' )),'@','') i mozno opredelit index ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 17:52 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39382000&tid=1886675]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
196ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 503ms |

| 0 / 0 |
