powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Уважаемые Знатоки по написанию процедур для InterBase
5 сообщений из 5, страница 1 из 1
Уважаемые Знатоки по написанию процедур для InterBase
    #32194238
StepN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
очень нужна Ваша помощь.

Есть таблица с полями:

HACH - начислено оплат (руб.)
DATE_SK1 - дата начала скидки
DATE_SK2 - дата конца скидки
SUM_SK - скидка (руб.)
REAL_HACH - реально начиислено (руб.)

Нужна процедура которая для каждой записи в отдельности
выполнит логические действия, а именно:

1. если текущая дата НЕ попадает в диапазон дат
DATE_SK1 ... DATE_SK2 то:

REAL_HACH = HACH

2. если текущая дата попадает в диапазон дат
DATE_SK1 ... DATE_SK2 то:

REAL_HACH = HACH - SUM_SK

Большое Вам спасибо за любую оказанную помощь.
...
Рейтинг: 0 / 0
Уважаемые Знатоки по написанию процедур для InterBase
    #32194318
Voha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ха, маЛЧик ти што шюююютник, ДА?
дер
жи тело
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
IF (IN (:DATE_SK1, DATE_SK2, DATE_SK))  /*МОЖНО ЗАКРАТЬ ГЛАЗА И ВСЕ  IN ЗАМЕНИТЬ НА EXISTS (это нея асказал а, помоему,  Ковязин)*/ 
BEGIN
       REAL_HACH = HACH 
END 
ELSE 
BEGIN
       REAL_HACH = HACH - SUM_SK;
END

СОРИ ЕСЛИ НЕ ПРАВ (возможно перепил пивка, у нас сегодня день конституции, но не подумайте что за празник пил пиво, у меня у тещи просто совпал день рождения
:-)))
...
Рейтинг: 0 / 0
Уважаемые Знатоки по написанию процедур для InterBase
    #32199221
StepN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Энто все понятно, но мне нужно чтобы все это применилось ко всем записям в таблице одной транзакцией. Ведь диапазоны скидок и их величины у всех разные. ТОесть процедура должна быть применена сразу ко всем записям.
...
Рейтинг: 0 / 0
Уважаемые Знатоки по написанию процедур для InterBase
    #32199322
paul_c0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если ответ который выше засунуть в for select
и далее в зависимости от структур.
...
Рейтинг: 0 / 0
Уважаемые Знатоки по написанию процедур для InterBase
    #32199369
Roman Ignatiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну да, чуть что - цикл...
begin
update Tabla set REAL_HACH = HACH;

update Tabla set REAL_HACH = REAL_NACH - SUM_SK
where DATE_SK1 <= 'TODAY' and DATE_SK2 >= 'TODAY';

end
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Уважаемые Знатоки по написанию процедур для InterBase
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]