Ответить

 

Опции темы
Старый 20.10.2010, 20:44   #31
belov-evgenii
Модератор раздела
 
Аватар для belov-evgenii
 
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45 раз(а) в 45 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

Нужно смотреть не ibec_re_Create, а по регулярным выражениям в общем. Правила для всех языков одинаковы (за исключением каких-нибудь незначительных изменений). Я и сам не особо в это въезжаю.
 
В Минюст Цитата Спасибо
Старый 20.10.2010, 21:11   #32
raus
Модератор ФССП
 
Аватар для raus
 
Регистрация: 16.01.2009
Адрес: Россия / /
Сообщений: 3,373
Благодарности: 153
Поблагодарили 548 раз(а) в 528 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

Цитата:
Сообщение от belov-evgenii Посмотреть сообщение
а по регулярным выражениям в общем.
буду тогда вики для начала читать. Мне кажется что в этих регулярных выражениях большая польза может быть при "выуживании" данных из БД....
__________________
Yo Way Yo, Home Va-Ray,
Yo Ay-Rah, Jerhume Brunnen-G
 
В Минюст Цитата Спасибо
Старый 20.10.2010, 22:16   #33
belov-evgenii
Модератор раздела
 
Аватар для belov-evgenii
 
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45 раз(а) в 45 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

если только для не нормализованных
 
В Минюст Цитата Спасибо
Старый 21.10.2010, 11:25   #34
sarapul-mro
Пользователь
 
Аватар для sarapul-mro
 
Регистрация: 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
belov-evgenii
Модератор раздела
 
Аватар для belov-evgenii
 
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45 раз(а) в 45 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

Чтобы блок выдавал столбцы наружу, они должны быть определены в returns. Дальше в теле блока (as begin ... end) этим переменным должны быть присвоены какие-то значения. В данном случае значения переменным присваиваются в разделе for select ... into, в таком порядке, в каком они идут в запросе for select.
 
В Минюст Цитата Спасибо
Старый 22.11.2010, 08:15   #36
sarapul-mro
Пользователь
 
Аватар для sarapul-mro
 
Регистрация: 05.10.2010
Сообщений: 119
Благодарности: 0
Поблагодарили 8 раз(а) в 8 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

Помогите кто знает как выбрать ИП по которым СПИ не сделал электронные запросы в банки и иные организации, со следующим условием.
1. ИП не оконченно
2. С даты возбуждения прошло больше 5дней (или N-дней)
3. Вид должника физическое лицо.
4. В описи нет электронного запроса (Наверно нет документа с 87 или 762-м кодом, или же как то по другому отфильтровать).
У кого нибудь есть мысли?
 
В Минюст Цитата Спасибо
Старый 22.11.2010, 08:59   #37
raus
Модератор ФССП
 
Аватар для raus
 
Регистрация: 16.01.2009
Адрес: Россия / /
Сообщений: 3,373
Благодарности: 153
Поблагодарили 548 раз(а) в 528 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

Цитата:
Сообщение от sarapul-mro Посмотреть сообщение
У кого нибудь есть мысли?
вечером если будет время напишу....
__________________
Yo Way Yo, Home Va-Ray,
Yo Ay-Rah, Jerhume Brunnen-G
 
В Минюст Цитата Спасибо
Старый 22.11.2010, 21:20   #38
raus
Модератор ФССП
 
Аватар для raus
 
Регистрация: 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')   -- коды документа, которго не должно быть
понимаю, что можно последние not exists в одном сделать, но почто то не работает, если в одно сливаю...
__________________
Yo Way Yo, Home Va-Ray,
Yo Ay-Rah, Jerhume Brunnen-G
 
В Минюст Цитата Спасибо
Старый 22.11.2010, 22:53   #39
belov-evgenii
Модератор раздела
 
Аватар для belov-evgenii
 
Регистрация: 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
raus
Модератор ФССП
 
Аватар для raus
 
Регистрация: 16.01.2009
Адрес: Россия / /
Сообщений: 3,373
Благодарности: 153
Поблагодарили 548 раз(а) в 528 сообщениях

Обратиться по нику
Цитата выделенного
По умолчанию

гы... проблемы с формальной логикой у меня были всегда....
__________________
Yo Way Yo, Home Va-Ray,
Yo Ay-Rah, Jerhume Brunnen-G
 
В Минюст Цитата Спасибо
Ответить


Быстрый ответ

Сообщение:
Опции

Опции темы

Ваши права в разделе