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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2014, 18:52   #1
@ngel111
Пользователь
 
Регистрация: 24.02.2014
Сообщений: 12
Восклицание Триггер 2

С предыдущим разобрался сам, тут никто не помог((
Второй триггер, надеюсь хоть тут хоть что то да подскажут.
Текст:
Код:
Create table Firma_proizvoditel (
	Название_фирмы_производителя nvarchar (20) primary key,
	Страна_производства nvarchar (20),
	Юридический_адрес nvarchar (20),
	Телефон_фирмы_производителя varchar (11)
	);

create table Подгруппа_товаров1 (
	Группа_товаров integer not null  Primary key,
	Подгруппа_товаров integer not null
	);

Create table Товар (
	ID_товара integer not null primary key,
	Наименование_товара nvarchar (50),
	Номер_сертификата_качества varchar (18),
	Цена_товара money,
	Название_фирмы_производителя nvarchar (50) NOT NULL FOREIGN KEY REFERENCES Firma_proizvoditel (Название_фирмы_производителя),
	Группа_товаров nvarchar (60) NOT NULL FOREIGN KEY REFERENCES Подгруппа_товаров1 (Группа_товаров)
	);
	
Create table Фирма_покупатель (
	ID_фирмы_покупателя integer not null primary key,
	Название_фирмы nvarchar (18),
	Юридический_адрес nvarchar (100),
	Телефон_фирмы_покупателя varchar (11),
	Номер_лицензии varchar (18),
	Банковские_реквизиты varchar (18),
	Категория_фирмы nvarchar (18),
	Число_заказов int
	);

Create table Курс_ДЕ (
	Курс_$XRUB int primary key,
	Дата date NOT NULL
	);

Create table Товарная_накладная (
	ID_накладной integer not null primary key,
	ID_фирмы_покупателя int NOT NULL FOREIGN KEY REFERENCES Фирма_покупатель (ID_фирмы_покупателя),
	ID_банка int NOT NULL,
	Дата_оформления date NOT NULL,
	Курс_ДЕ int NOT NULL FOREIGN KEY REFERENCES Курс_ДЕ (Курс_$XRUB),
	);

Create table Заказ (
	ID_заказа int NOT NULL,
	ID_товара int NOT NULL FOREIGN KEY REFERENCES Товар (ID_Товара),
	ID_накладной int NOT NULL FOREIGN KEY REFERENCES Товарная_накладная (ID_накладной),
	Сумма_заказа varchar (4)
	);



INSERT INTO
    Товар (ID_товара, Наименование_товара, Номер_сертификата_качества, Цена_товара, Название_фирмы_производителя, Группа_товаров)
    VALUES
	(123456, 'шестерня', 23548654, 265, 'OBK', 'Шестерни')

Insert into
	Firma_proizvoditel (Название_фирмы_производителя, Страна_производства, Юридический_адрес, Телефон_фирмы_производителя)
	Values
	('OBK', 'Китай', 'Китай и т.д.', 89093332211)

Insert into
	Подгруппа_товаров1 (Группа_товаров, Подгруппа_товаров)
	Values
	('Шестерни', 'Запчасти')

Insert into
	Фирма_покупатель (ID_фирмы_покупателя, Название_фирмы, Юридический_адрес, Телефон_фирмы_покупателя, Номер_лицензии, Банковские_реквизиты, Категория_фирмы)
	Values
	(145562, 'ЗАО РЕМОНТ', 'Москва и т.д.', 89085553322, 44625858, 548512, 6485)

Insert into
	Курс_ДЕ (Курс_$XRUB, Дата)
	Values
	('0,01', '2011-11-11')

Insert into
	Товарная_накладная (ID_накладной, ID_фирмы_покупателя, ID_банка, Дата_оформления, Курс_ДЕ)
	Values
	(64845, 654854, 58765, '2011-11-11', 5481246)

Insert into
	Заказ (ID_заказа, ID_товара, ID_накладной, Сумма_заказа)
	Values
	(5484127, 5454, 48485, 2356)



Create table CT (
ID  int Identity (1,1)
);


CREATE TRIGGER Число_заказов FOR Фирма_покупатель
active after UPDATE Число_заказов
AS
DECLARE variable Число_заказов VARCHAR(10);
DECLARE variable CT INTEGER;
BEGIN
FOR SELECT Число_заказов FROM Фирма_покупатель
  INTO :Число_заказов
BEGIN
    SELECT COUNT(*)
        FROM Число_заказов
        WHERE Число_заказов +1
        INTO :CT;
    UPDATE Число_заказов
    SET Число_заказов = :CT
    WHERE Число_заказов = :Число_заказов;
END
END
Задание:
При вставке нового курса валюты производится расчет изменения в абсолютной величине и в процентах, относительно предыдущего.
Т.е. если предыдущий курс равен 50, а вставляемый = 55, то абсолютное увеличение = 5, в процентах = 10. Хранить можно в этой же таблице.
@ngel111 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Триггер @ngel111 SQL, базы данных 2 23.12.2014 14:57
Триггер skanku SQL, базы данных 1 13.11.2012 18:23
Триггер Babur4iK SQL, базы данных 3 08.11.2012 16:28
Триггер andresan SQL, базы данных 0 16.05.2011 16:29
Триггер? yulia БД в Delphi 9 12.05.2007 15:03