Ответить

 

Опции темы
Старый 12.10.2010, 09:04   #1
sarapul-mro
Пользователь
 
Аватар для sarapul-mro
 
Регистрация: 05.10.2010
Сообщений: 119
Благодарности: 0
Поблагодарили 8 раз(а) в 8 сообщениях

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

Нужен select, для поиска ИП которое на исполнение два месяца и больше и при этом в описи ИП созданно меньше трех-четырех документов. (Например Есть только Обложка, Постановление о возбуждени и все., ну или еще один документ.)
Условие получиться следующие 1. Не оконченно
2. С даты возбуждения прошло 2мес и больше
3. В Описи ИП меньше 3-4 документов.

Это рельно?
 
В Минюст Цитата Спасибо
Старый 12.10.2010, 09:36   #2
belov-evgenii
Модератор раздела
 
Аватар для belov-evgenii
 
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45 раз(а) в 45 сообщениях

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

Код:
select * 
from ip 
where datediff(month, ip.date_ip_in, current_timestamp) >= 2 
	and ip.date_ip_out is null 
	and (select count(*) 
		 from document 
		 where ip.pk = document.fk) <= 4
 
В Минюст Цитата Спасибо
Старый 12.10.2010, 11:34   #3
belov-evgenii
Модератор раздела
 
Аватар для belov-evgenii
 
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45 раз(а) в 45 сообщениях

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

Пардон, datediff(month, ip.date_ip_in, current_timestamp) >= 2
 
В Минюст Цитата Спасибо
Старый 12.10.2010, 12:33   #4
raus
Модератор ФССП
 
Аватар для raus
 
Регистрация: 16.01.2009
Адрес: Россия / /
Сообщений: 3,373
Благодарности: 153
Поблагодарили 548 раз(а) в 528 сообщениях

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

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

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

Я за раздельные темы. Можно в каком-то подфоруме.
 
В Минюст Цитата Спасибо
Старый 12.10.2010, 15:50   #6
raus
Модератор ФССП
 
Аватар для raus
 
Регистрация: 16.01.2009
Адрес: Россия / /
Сообщений: 3,373
Благодарности: 153
Поблагодарили 548 раз(а) в 528 сообщениях

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

ОК!!! так и порешили...
__________________
Yo Way Yo, Home Va-Ray,
Yo Ay-Rah, Jerhume Brunnen-G
 
В Минюст Цитата Спасибо
Старый 12.10.2010, 16:04   #7
belov-evgenii
Модератор раздела
 
Аватар для belov-evgenii
 
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45 раз(а) в 45 сообщениях

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

Если можешь, создай подфорум SQL-запросы
 
В Минюст Цитата Спасибо
Старый 12.10.2010, 16:44   #8
Потопешка
Пользователь
 
Аватар для Потопешка
 
Регистрация: 22.06.2010
Сообщений: 14
Благодарности: 0
Поблагодарили 2 раз(а) в 2 сообщениях

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

Женя, нужен select из даты рождения должника (Символьная строка) типа "10.10.1952.............." выделить год, т.е. начиная с 6 4 символа и в числе
задача такая: найти должников в диапазоне лет
 
В Минюст Цитата Спасибо
Старый 12.10.2010, 18:12   #9
Sirius34
Пользователь
 
Аватар для Sirius34
 
Регистрация: 19.07.2010
Сообщений: 392
Благодарности: 0
Поблагодарили 76 раз(а) в 76 сообщениях

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

Потопешка
что-то подобное будет
Код:
select ip.* 
from ip 
where 
(cast (substring(ip.date_born_d from 7 for 4) as integer)) >= 1975 
and 
(cast (substring(ip.date_born_d from 7 for 4) as integer)) <= 1987
возможные проблемы: некорректное внесение даты рождения (тут уж ничего не поделаешь)
 
В Минюст Цитата Спасибо
Старый 12.10.2010, 22:28   #10
belov-evgenii
Модератор раздела
 
Аватар для belov-evgenii
 
Регистрация: 03.03.2009
Сообщений: 151
Благодарности: 0
Поблагодарили 45 раз(а) в 45 сообщениях

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

Код:
select ip.* 
from ip 
where cast(substring(ip.date_born_d from 7 for 4) as integer) between 1975 and 1987
и с невалидной датой можно попробовать поделать что-нибудь с помощью этих функций.

Вот что-то такое получилось. Выберет вхождение 19хх или 20хх из строки:
Код:
execute ibeblock 
returns (yearborn integer  /* выделенный год */, 
	datebornd varchar(200) /* без изменений */) 
as 
begin 
	/* создаем регэксп 19 или 20 плюс две цифры от 0 до 9*/ 
	re = ibec_re_Create('(19|20)[0-9]{2}'); 
 
	for select ip.date_born_d 
	from ip 
	into :datebornd do begin 
		if (:datebornd is not null) then begin 
			res = ibec_re_Exec(re, :datebornd);		 --хз, что это за функция 
			while (res) do begin 
				yearborn_c = ibec_re_Match(re, 0);	  --получаем год в виде строки 
				yearborn = cast(yearborn_c as integer); --преобразуем строку в integer 
				suspend;								--выводим 
				res = ibec_re_ExecNext(re);			 --тоже хз 
			end; 
		end; 
	end; 
	ibec_re_Free(re); 
end
 
В Минюст Цитата Спасибо
Ответить


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

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


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