25 / 0 / 0
Регистрация: 13.05.2009
Сообщений: 9
|
|
1 | |
Хранимая процедура для вычисляемых полей в таблице24.04.2016, 12:19. Показов 1202. Ответов 5
Метки нет (Все метки)
Имеется набор таблиц, связи между ними один к одному. Нужно создать хранимую процедуру в interbase, которая будет высчитывать и заносить данные в таблицу к примеру "А" испотльзуя для вычесления соответствующие данные из таблиц "Б" , "В" , "Г". Сколько не читал про это не пойму как реализовать входные и выходные параметры даже. Грубо говоря в таблице "Б" указан оклад каждого сотрудника, в таблице "В" указан повышающий коэфициент, в таблице "Г" указано количество часов, в итоге надо что бы соответствующее поле в Таблице "А" заполнялось по формуле поля из таблиц "Б"/"В"*"Г".
0
|
24.04.2016, 12:19 | |
Ответы с готовыми решениями:
5
Хранимая процедура для объединения полей в БД Процедура для создание полей в таблице (кол-во полей > 50) Оптимизация вычислений нескольких вычисляемых полей в таблице Хранимая процедура на выборку названий полей таблицы |
25.04.2016, 03:54 | 2 |
Можно попробовать через вычисляемое поле COMPUTED BY.
А можно и через процедуру. Входные параметры Сотрудник, Дата (если в табл. "Г" указываются часы, то значит указываются за какой-либо период, а табл. "А" предназначена для начислений). Запросом рассчитываешь значение и заносишь/обновляешь в табл. "А". В табл. "Б, В, Г" в триггерах после вставки, обновления, удаления запускаешь процедуру.
0
|
25 / 0 / 0
Регистрация: 13.05.2009
Сообщений: 9
|
|
25.04.2016, 15:11 [ТС] | 3 |
Bit_Man, COMPUTED BY работает только с полями таблицы в которой он и используется. Говоря конкретнее про таблицы, в таблицах "Б" "В" "Г" хранится много разных данных, часы коэфициенты оклады надбавки и тд, И с множеством данных из этих таблиц, производя математические действия между ними результаты которых заносятся в соответствующие столбци таблицы "А". например в таблице "Б" 3 параметра есть, в "В" 12 параметров и в "Г" 5. И в итоге в таблице "А" должно заполнятся около 12 столбцов, а потом их сумировать и их же сумму сложить с полем из таблицы "Б" и вывести в ещё одну таблицу "Д", при этом в программе написанной на делфи потом делать отчёт по таблице "Д". И теперь переформирую вопрос, это писать одну сложную процедуру и как тогда, писать множество мелких процедур, или сделать всё одной большой таблицей через COMPUTED BY высчитывать тогда спокойно на уровне интербейса, а в программе выводить эту таблицу поделив на несколько мелких, тоесть пользователь в прогремме видит много небольших таблиц, но в субд это одна большая.
0
|
25 / 0 / 0
Регистрация: 13.05.2009
Сообщений: 9
|
|
26.04.2016, 11:01 [ТС] | 5 |
Bit_Man, ну а ты можешь написать процедуру для примера, с нормальными именно конкретными коментариями, потому что вроде и нахожу в нэте, но не понимаю абсолютно. А если програмно создавать то вообще везде примеры через ADO а у меня вывод через компоненты IBDateBase IBquery и тд, тоесть никакого адо
0
|
27.04.2016, 03:16 | 6 |
для начала тут Словарик по Firebird пошарся. Будешь ваять процедуру выкладывай код поможем.
0
|
27.04.2016, 03:16 | |
27.04.2016, 03:16 | |
Помогаю со студенческими работами здесь
6
Хранимая процедура для update Хранимая процедура для доначисления Хранимая процедура для удаления Хранимая процедура для добавления Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |