Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


PostgreSQL вообще никогда не использовал, поэтому встречный вопрос - в нем есть планировщик, позволяющий выполнять задачу по расписанию? Если да, то это условие надо убрать из скрипта. Далее, можно попробовать использовать примерно такой скрипт(пишу по памяти, возможны ошибки):

1. Смотрим количество максимальных значений.
Код: Выделить весь код
:Setvar Max_count = select count(idx) as max_idx from rs_taxgrouptotalsitem
having idx = max(idx)
group by idx
2. Запоминаем максимальное значение
Код: Выделить весь код
:Setvar Max_num = select max(idx) from rs_taxgrouptotalsitem
3. Если максимальных значений больше или равно2(т.е. это случай, если мы уже находили макс. значение и вставляли его), то удаляем их.
Код: Выделить весь код
if Max_count >=2 then
DELETE FROM rs_taxgrouptotalsitem , work_dpe
 WHERE idx = Max_num ;
4. Если же значение одно, то вставляем его в таблицу
Код: Выделить весь код
if Max_count =1 then
insert into work_dpe (idx) values (Max_num);
Все это дело в планировщик каждые 30 минут.
Запускаем. Код ищет количество макс. значений. Т.к. он ни разу еще не работал и в таблице нет двух макс. значений, то код идет на вставку макс. значения в таблицу и заканчивает работу. Через 30 минут запускается, видит, что максимальных значений 2 и удаляет их, после чего заканчивает работу.Если же макс. значений всего одно, то он вставляет его дубль. В след. раз если он опять найдет 1 макс. значение, то продублирует его. Как то как вроде бы.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:44, 13-08-2011 | #2