20.10.2010, 20:44 | #31 |
Модератор раздела
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45
раз(а) в 45 сообщениях
Обратиться по нику Цитата выделенного |
Нужно смотреть не ibec_re_Create, а по регулярным выражениям в общем. Правила для всех языков одинаковы (за исключением каких-нибудь незначительных изменений). Я и сам не особо в это въезжаю.
|
В Минюст Цитата Спасибо |
20.10.2010, 21:11 | #32 |
Модератор ФССП
Регистрация: 16.01.2009
Адрес: Россия / /
Сообщений: 3,373
Благодарности: 153
Поблагодарили 548
раз(а) в 528 сообщениях
Обратиться по нику Цитата выделенного |
буду тогда вики для начала читать. Мне кажется что в этих регулярных выражениях большая польза может быть при "выуживании" данных из БД....
__________________
Yo Way Yo, Home Va-Ray, Yo Ay-Rah, Jerhume Brunnen-G |
В Минюст Цитата Спасибо |
20.10.2010, 22:16 | #33 |
Модератор раздела
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45
раз(а) в 45 сообщениях
Обратиться по нику Цитата выделенного |
если только для не нормализованных
|
В Минюст Цитата Спасибо |
21.10.2010, 11:25 | #34 |
Пользователь
Регистрация: 05.10.2010
Сообщений: 119
Благодарности: 0
Поблагодарили 8
раз(а) в 8 сообщениях
Обратиться по нику Цитата выделенного |
Женя вообще я добавил нужные мне поля и изменил условие. Запрос выполняется но ничего не выходит
Код:
execute ibeblock returns (npp integer, summ numeric(15,2)) --тут нужно добавлять столбцы для вывода as declare variable text varchar(500); begin reSumString = ibec_re_Create('сумма: [0-9]{1,}.[0-9]{2};'); reSum = ibec_re_Create('[0-9]{1,}.[0-9]{2}'); --re = ibec_re_Create('[0-3][0-9]\.[0-1][0-9]\.(19|20)[0-9]{2}'); for select IP.NPP, ip.fio_spi, ip.name_d, ip.sum_, ZAPROS.TEXT --сюда добавлять поля, которые хочешь вывести наружу from IP join ZAPROS on IP.PK = ZAPROS.FK_IP where ZAPROS.RESULT = 5 and --тут нужно добавлять условия (окончено/) IP.date_ip_out is null and --а вот и твои оконченные IP.SUM_ is not null and IP.SUM_ > 50 and not exists (select * from document where ip.pk = document.fk and document.kod = 10 and document.date_doc + 30 < current_timestamp) and ZAPROS.DATE_RES = (select max(Z.DATE_RES) from ZAPROS Z where ZAPROS.FK_IP = Z.FK_IP group by Z.FK_IP) into :npp, :text do begin --не забыть сюда включить переменные на выход (returns вверху) if (:text is not null) then begin res = ibec_re_Exec(reSumString, :text); /* ищем вхождения 'сумма: 0.00;' */ while (res) do begin SumString = ibec_re_Match(reSumString, 0); /* SumString = 'сумма: 0.00;' */ res2 = ibec_re_Exec(reSum, SumString); /* ищем вхождения '0.00' */ sum_as_string = ibec_re_Match(reSum, 0); /* sum_as_string = '0.00' */ Summ = cast(sum_as_string as numeric(15,2)); /* Summ = 0.00 */ if (Summ > 50) then suspend; /* если больше 50 - выводим */ suspend; res = ibec_re_ExecNext(reSumString); end end; end; ibec_re_Free(reSumString); ibec_re_Free(reSum); end |
В Минюст Цитата Спасибо |
21.10.2010, 13:57 | #35 |
Модератор раздела
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45
раз(а) в 45 сообщениях
Обратиться по нику Цитата выделенного |
Чтобы блок выдавал столбцы наружу, они должны быть определены в returns. Дальше в теле блока (as begin ... end) этим переменным должны быть присвоены какие-то значения. В данном случае значения переменным присваиваются в разделе for select ... into, в таком порядке, в каком они идут в запросе for select.
|
В Минюст Цитата Спасибо |
22.11.2010, 08:15 | #36 |
Пользователь
Регистрация: 05.10.2010
Сообщений: 119
Благодарности: 0
Поблагодарили 8
раз(а) в 8 сообщениях
Обратиться по нику Цитата выделенного |
Помогите кто знает как выбрать ИП по которым СПИ не сделал электронные запросы в банки и иные организации, со следующим условием.
1. ИП не оконченно 2. С даты возбуждения прошло больше 5дней (или N-дней) 3. Вид должника физическое лицо. 4. В описи нет электронного запроса (Наверно нет документа с 87 или 762-м кодом, или же как то по другому отфильтровать). У кого нибудь есть мысли? |
В Минюст Цитата Спасибо |
22.11.2010, 08:59 | #37 |
Модератор ФССП
Регистрация: 16.01.2009
Адрес: Россия / /
Сообщений: 3,373
Благодарности: 153
Поблагодарили 548
раз(а) в 528 сообщениях
Обратиться по нику Цитата выделенного |
__________________
Yo Way Yo, Home Va-Ray, Yo Ay-Rah, Jerhume Brunnen-G |
В Минюст Цитата Спасибо |
22.11.2010, 21:20 | #38 |
Модератор ФССП
Регистрация: 16.01.2009
Адрес: Россия / /
Сообщений: 3,373
Благодарности: 153
Поблагодарили 548
раз(а) в 528 сообщениях
Обратиться по нику Цитата выделенного |
так
Код:
select * -- подставишь что надо from ip where ip.DATE_IP_OUT is null -- не окончено and ip.DATE_IP_IN + 5 < current_timestamp -- пять дней от сегоднышней даты and ip.VIDD_TTL containing 'ФИЗИЧЕСКОЕ' -- не совсем правильно но сработает and not exists (select * from document where ip.pk = document.fk and document.kod= '87') -- коды документа, которго не должно быть and not exists (select * from document where ip.pk = document.fk and document.kod= '762') -- коды документа, которго не должно быть
__________________
Yo Way Yo, Home Va-Ray, Yo Ay-Rah, Jerhume Brunnen-G |
В Минюст Цитата Спасибо |
22.11.2010, 22:53 | #39 |
Модератор раздела
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45
раз(а) в 45 сообщениях
Обратиться по нику Цитата выделенного |
(... ip.pk = d.fk and d.kod = 87 or d.kod = 762) аналогично 2 * 87 + 762, а тебе нужно сначала сложить и затем умножить.
|
В Минюст Цитата Спасибо |
22.11.2010, 23:23 | #40 |
Модератор ФССП
Регистрация: 16.01.2009
Адрес: Россия / /
Сообщений: 3,373
Благодарности: 153
Поблагодарили 548
раз(а) в 528 сообщениях
Обратиться по нику Цитата выделенного |
гы... проблемы с формальной логикой у меня были всегда....
__________________
Yo Way Yo, Home Va-Ray, Yo Ay-Rah, Jerhume Brunnen-G |
В Минюст Цитата Спасибо |
|
|
«Закония» в соц. сетях