Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2013, 19:21   #1
Flassher
 
Регистрация: 24.05.2013
Сообщений: 9
Вопрос БД SQL




Таблица представлены через IBQuery sql запрос. База создана в InterBase.

Как организовать то, что показано на изображенииЮ, а именно, перемножить два поля KOL_HTUK, CENA_HTUK и вывести результат в ITOGO_RUB
Flassher вне форума Ответить с цитированием
Старый 24.05.2013, 19:56   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

вариант 1. перемножать поля напрямую в запросе
вариант 2. перемножать через CalkFields (вычисляемые поля) своей Query
вариант 3. завести в БД поле ITOGO_RUB и сделать его вычисляемым на уровне таблицы. пусть расчитывается самим сервером))
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 24.05.2013, 20:33   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Первые два варианта то, что надо. Третий формально имеет право на существование, но лучше не привыкать к таким решениям. ИМХО
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.05.2013, 21:15   #4
Flassher
 
Регистрация: 24.05.2013
Сообщений: 9
По умолчанию

Я решил свою проблему через COMPUTED BY
Всем спасибо.
у меня возник другой вопрос, можно ли сделать так, что бы данные с поля DATA после его заполнения копировались в другую таблицу, например Sklad3

CREATE TABLE "SKLAD2"
(
"ARTIKUL" "DNARTIKUL",
"NAIMENOWANIE" "DNNAIMENOW",
"KOL_HTUK" "DNKOLHTUK",
"CENA_HTUK" "DNCENAHTUK",
"GRUPPA" "DNGRUPA",
"PROIZWODITEL" "DNPROIZWOD",
"DATA" "DNDATA",
Flassher вне форума Ответить с цитированием
Старый 24.05.2013, 21:24   #5
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

пиши капец бизнесу
eval вне форума Ответить с цитированием
Старый 25.05.2013, 11:54   #6
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Flassher, к посту №1 есть еще вариант 4: создать Представление\Хранимую процедуру которая будет формировать выборку с вычислениями, а с ч\з Query просто тащить данные с этой процедуры. Удобнее тем что если нужно изменить расчет какого-то поля - не нужно перекомпилировать exe-шник.
к посту №3: создай тригер для таблицы первой таблицы на событие AFTER INSER\AFTER UPDATE в котором будет примерный код:
Код:
UPDATE OR INSERT INTO sklad2 (data) 
VALUES (NEW.data)
MATCHING (recordid);
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление строки с помощью SQL запроса (Query1.SQL.ADD('Delete....')) Schutze Помощь студентам 6 29.11.2009 22:15
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15