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

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

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2013, 20:53   #1
SweetSweet
 
Регистрация: 24.10.2010
Сообщений: 5
Вопрос Значение по умолчанию

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

Поставил перед собой задачу - имеются 3 таблицы:
"Список домов" - пригодиться поле метраж;
"Вид работы" - пригодится поле цена за метр;
"Итоговая" - есть поле цена, хочу вычислить её как метраж * цена за метр.

PHP код:
CREATE TABLE Home_Table(
      
HomeID        int                 NOT NULL,    
      
Adress         varchar(40)     NOT NULL,
      
Metr            int                 NOT NULL,
   
CONSTRAINT HomePK PRIMARY KEY (HomeID),
   
CONSTRAINT MetrRange CHECK (Metr>0));

CREATE TABLE Article_Table(
      
ArticleID          int                 NOT NULL,
      
Article_Name    varchar(25)     NOT NULL,
      
CostPerMetr     numeric(12,2)  NOT NULL,
   
CONSTRAINT ArticlePK PRIMARY KEY (ArticleID));

CREATE TABLE Repair_Work_Table(
      
OrderID         int             NOT NULL,
      
ArticleID        int             NOT NULL,
      
HomeID         int             NOT NULL,
      
Total_Cost      numeric(12,2)   NOT NULL,
   
CONSTRAINT Repair_WorkPK PRIMARY KEY (OrderID),
   
CONSTRAINT Repair_WorkFK4 FOREIGN KEY (ArticleID
                          
REFERENCES Article_Table (ArticleID)
                          
ON DELETE CASCADE,
   
CONSTRAINT Repair_WorkFK5 FOREIGN KEY (HomeID
                          
REFERENCES Home_Table (HomeID)
                          
ON DELETE CASCADE,
   
CONSTRAINT Total_CostRange CHECK (Total_Cost>0)); 
Вычитал про default, установил внешние ключи, но провозившись с ним не получил ничего, кроме ошибок. Помогите составить правильный запрос.
SweetSweet вне форума Ответить с цитированием
Старый 30.03.2013, 21:22   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

это дублирование данных, хранить их не всегда надо.
eval вне форума Ответить с цитированием
Старый 30.03.2013, 21:29   #3
SweetSweet
 
Регистрация: 24.10.2010
Сообщений: 5
По умолчанию

eval, я не спрашивал про дублирование, я спросил как правильно сформировать запрос. Поскольку учусь, то дублирование меня пока не интересует. Я пытался создать конструкцию типа

Zatrat numeric(12,2) NOT NULL DEFAULT Article_Table.CostPerMetr * Home_Table.Metr,

но как я понял нужно ещё как то обратиться к строкам других таблиц.

WHERE Article_Table.HomeID = Repair_Work_Table.HomeID
AND Article_Table.ArticleID = Repair_Work_Table.ArticleID;

Я вообще в правильном направлении думаю?
SweetSweet вне форума Ответить с цитированием
Старый 30.03.2013, 21:35   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

во первых надо знать субд, двлеко не все умеют такие штуки делать
во вторых такие данные как правило не хранят в базе , т.к. дублирование.
eval вне форума Ответить с цитированием
Старый 30.03.2013, 21:40   #5
SweetSweet
 
Регистрация: 24.10.2010
Сообщений: 5
По умолчанию

eval, идите пожалуйста дальше и не засоряйте топик. Если вы не знаете зачем вообще постите всякую чушь. Хранить не хранить дело тут не играет, т.к. я только изучаю sql.
SweetSweet вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Значение по умолчанию на ANSI C stranger84 Общие вопросы C/C++ 1 21.09.2012 18:08
Получение значение созданное по умолчанию vlkr Microsoft Office Access 1 14.07.2012 23:35
значение по умолчанию Алек C# (си шарп) 1 20.12.2011 22:23
значение по умолчанию T(h)rasher SQL, базы данных 14 17.04.2011 13:30
Значение поля по умолчанию alco84 Microsoft Office Access 2 16.02.2010 10:17