Пронумеровать значения

Ответить
kasandra
Активный участник
Сообщения: 145
Зарегистрирован: 09 апр 2014, 11:33
Репутация: 2

Пронумеровать значения

Сообщение kasandra » 10 май 2016, 12:25

Добрый день!
Стоит такая задача. Есть поле zone_code -- это некоторые группы. У каждой группы может быть одна и более подгрупп. Нужно значениям подгруппы присвоить значения в виде zone_code ||01. Тесть если номер группы 15, то номер подгруппы будет 151.

Решила попробовать это сделать через функцию, но если значений больше чем один, то она срабатывает не верно (присваивать код группы+ максимальный номер подгруппы всем подгруппам).

Подскажите в чем ошибка или возможно есть другой вариант решения вопроса?

Вот моя функция:

Код: Выделить всё

-- Function: _generate_san_zone_code_condition2()

-- DROP FUNCTION _generate_san_zone_code_condition2();

CREATE OR REPLACE FUNCTION _generate_san_zone_code_condition2()
  RETURNS numeric AS
$BODY$
DECLARE 
v integer;
id_code numeric;
i numeric;
k  bigint;
  BEGIN

for i in SELECT zone_code  FROM law.sys_san_prot_zone_class   group by  zone_code loop

select count(*) from law.sys_san_prot_zone_class where zone_code=i into v;
if v>0 then 

	while (id_code is NULL) loop
	begin
	id_code=(select coalesce((max(id_code)+1),(i::text ||'1'::text))) from law.sys_san_prot_zone_class order by id ;
	end;
	end loop;
     id_code= (i::text ||v::text)::numeric;

      end if;
if v=0 then 
id_code= (i::text ||'1')::numeric;

end if;
        RETURN i;
END LOOP;
END;



$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 1000;
Последний раз редактировалось kasandra 10 май 2016, 17:13, всего редактировалось 1 раз.

trir
Гуру
Сообщения: 5278
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1014
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Пронумеровать значения

Сообщение trir » 10 май 2016, 13:48

тэг CODE

kasandra
Активный участник
Сообщения: 145
Зарегистрирован: 09 апр 2014, 11:33
Репутация: 2

Re: Пронумеровать значения

Сообщение kasandra » 10 май 2016, 16:52

Я не поняла смысл вашего комментария.

trir
Гуру
Сообщения: 5278
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1014
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Пронумеровать значения

Сообщение trir » 10 май 2016, 16:56

Код: Выделить всё

сделай код так

kasandra
Активный участник
Сообщения: 145
Зарегистрирован: 09 апр 2014, 11:33
Репутация: 2

Re: Пронумеровать значения

Сообщение kasandra » 10 май 2016, 17:14

Done тэг Код есть, вопрос по правилам значит оформлен... У кого-то есть идеи, подскажите решение задачи?

Ответить

Вернуться в «PostGIS/PostgreSQL»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя