![]() |
|
Модераторы: Akella |
![]()
|
|
| TaNK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 669 Регистрация: 29.10.2006 Где: Краснодар Репутация: нет Всего: 1 |
Всм привет, прочитав тему http://forum.vingrad.ru/topic-208545.html решение все таки не такое как мне нужно.
Нужно вот что
так вот при вставке нужно поле total из refuelling_auto умножить на percents из таблицы Discount discount_id сделал как FK как написать триггер (или есть другой вариант) чтобы посчиталось total -------------------- Oracle 11.2.0.3.0 FireBird 1.0-2.5 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 3 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| TaNK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 669 Регистрация: 29.10.2006 Где: Краснодар Репутация: нет Всего: 1 |
Akina - ну если другого способа нет, будем вытаскивать данные из 2 таблиц
Спасибо. -------------------- Oracle 11.2.0.3.0 FireBird 1.0-2.5 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 3 Всего: 454 |
Может, и есть. Не знаю, с FB/IB не работаю, написано из общих соображений. Зачем? теперь ты просто из приложения обращаешься к v_refuelling_auto, как будто это статическая таблица. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| TaNK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 669 Регистрация: 29.10.2006 Где: Краснодар Репутация: нет Всего: 1 |
Akina - я образно написал....можно и вьюху использовать и хранимку да хоть функцию...(если она есть в FIB)
-------------------- Oracle 11.2.0.3.0 FireBird 1.0-2.5 |
|||
|
||||
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 7 Всего: 54 |
Akina, а зачем связывание двух таблиц, если используются поля только одного?
TaNK, так все таки, что требуется?
При выборке получать рассчитанные данные? Или же при вставке изменять вставляемое значение? Если при выборе, то решением может быть представление, а если при вставке, то триггер. Я так понимаю, что требуется второе. -------------------- Слава Україні! |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 3 Всего: 454 |
Gluttton, а какая разница что ЛЕЖИТ в таблице? и в том, и в другом случае при ВЫБОРКЕ он получит расчётное значение - независимо от того, исправленное или нет лежит в таблице.
Ну это не менее образно, чем у ТС... на самом деле это подведение к мысли, что там потребуется right join, чтобы не терять записи из discount, для которых пока нет записей в refuelling_auto -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 7 Всего: 54 |
Akina,
Я думаю, что выбор может быть основан на анализе соотношения операций выборки к операциям изменения. А так же от того, в каком виде (модифицированном или не модифицированном) используются ещё данные. Мне кажется, что если очень часто изменяется значение и крайне редко производится его выборка, а так же не модифицированное значение используется в других объектах БД, то лучше использовать представление. А в том случае, если данные изменяются крайне редко, но при этом очень часто осуществляется выборка и не модифицированные данные не используются другими объектами БД (или же более того используются модифицированные), то есть смысл использовать триггер. Чистая теория... Могу заблуждаться... -------------------- Слава Україні! |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 3 Всего: 454 |
Да всё верно. Путей решения несколько, выбор оптимального - за ТС.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| Правила форума "Interbase" | |
|
|
Обязательно указание: 1. Версию InterBase (Firebird, Yaffil) 2. Способа доступа (ADO, BDE, IBX и т.д.)
Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Firebird, Interbase | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |