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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2012, 10:51   #1
MIXER_ok
 
Регистрация: 29.05.2012
Сообщений: 3
По умолчанию Исправить SQL код, одну строчку (IBExpert)

На всякий случай привожу полный код. В таблице "товары магазинов" необходима колонка стоимость (выделена вопросами), рассчитываемая, но так как написано не работает (очевидно так брать значение из другой таблицы нельзя), как правильно? Помогите!
А да, в SQL шарю чуть более чем никак.

Код:
CREATE TABLE Magazini (
      Nomer_magazina       INTEGER NOT NULL,
      Ulica                CHAR(25),
      Nomer_doma           SMALLINT,
      Ploshad              DECIMAL(6,2),
      Familiya_upr         CHAR(20),
      Imya_upr             CHAR(20),
      Otchestvo_upr        CHAR(20),
      Nazvanie_magazina    CHAR(20),
      PRIMARY KEY (Nomer_magazina)
);

CREATE UNIQUE INDEX XPKMagazini ON Magazini
(
      Nomer_magazina
);


CREATE TABLE Tovari (
      Kod_tovara           INTEGER NOT NULL,
      Nazvanie_tovara      CHAR(20),
      Edenici_izmereniya   CHAR(5),
      Kolvo                DECIMAL(10,2) DEFAULT 0,
      Cena                 DECIMAL(10,2) DEFAULT 0,
      PRIMARY KEY (Kod_tovara),
      CHECK (Kolvo>=0),
      CHECK (Cena>=0)

);

CREATE UNIQUE INDEX XPKTovari ON Tovari
(
      Kod_tovara
);


CREATE TABLE Tovari_magazinov (
      Nomer_magazina       INTEGER NOT NULL,
      Kod_tovara           INTEGER NOT NULL,
      Kolvo_vmagazine      DECIMAL(10,2) DEFAULT 0,
?????????????????????????????????????????????????????????????????????????????
      Stoim                COMPUTED BY (Tovari.Cena * Kolvo_vmagazine),
?????????????????????????????????????????????????????????????????????????????
      CHECK (Kolvo_vmagazine>=0),
      PRIMARY KEY (Nomer_magazina, Kod_tovara),
      FOREIGN KEY (Kod_tovara)
                            REFERENCES Tovari
                                ON DELETE CASCADE
                                ON UPDATE CASCADE,
                           
      FOREIGN KEY (Nomer_magazina)
                            REFERENCES Magazini
                                ON DELETE CASCADE
                                ON UPDATE CASCADE

);

CREATE UNIQUE INDEX XPKTovari_magazinov ON Tovari_magazinov
(
      Nomer_magazina,
      Kod_tovara
);
MIXER_ok вне форума Ответить с цитированием
Старый 29.05.2012, 11:03   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Цитата:
В таблице "товары магазинов" необходима колонка стоимость (выделена вопросами), рассчитываемая,
Она нужна не в таблице (таблица = данные для хранения)
Она нужна в отображении (view )
как-то так (синтаксис не точный ! )

Create View ?tovari_magezinov? (
select ....
from tovari
inner join magazini on ........



);
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 29.05.2012 в 11:06.
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить только одну строчку, а не все hozey Общие вопросы Delphi 3 14.05.2010 18:12
объяснить ОДНУ строчку ZigaZaga Общие вопросы C/C++ 9 29.03.2010 22:12
Спарсить одну строчку AndreyFreeman Работа с сетью в Delphi 8 25.09.2009 17:45
Нужно передалать одну строчку в коде (С++) Olya90 Помощь студентам 4 29.06.2009 21:57
Как в C++ организовать ввод данных в одну строчку? amdbodia Общие вопросы C/C++ 10 16.05.2009 18:03