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

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

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

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

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

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

Есть create table:

Код:
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 trigger kol_zakazov on "Фирма_покупатель"
BEGIN 
INSERT INTO new_table(counter) VALUES((SELECT COUNT(*) FROM "INFORM COMMUN"));
END
что за остальные параметры и откуда их взять не найду никак, помогите кто чем сможет(



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 23.12.2014 в 13:21.
@ngel111 вне форума Ответить с цитированием
Старый 23.12.2014, 14:14   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Нужно сделать триггер считающий число заказов для конкретного покупателя,
НЕ НУЖНО.
Число заказов фирмы (покупателя) должно РАСЧИТЫВАТЬСЯ (считаться) по мере необходимости.
Также в таблице фирма_покупатель НЕНУЖНО поле число_заказов.

Число заказов (и другая информация о заказам) по покупателям либо считается в ПОЛЬЗОВАТЕЛЬСКОМ запросе (от программы-клиента).
Цитата:
select count(*), ID_фирмы_покупателя
from Товарная_накладная
group by ID_фирмы_покупателя
Либо для этого же пишется View (представление)
Код:
create View zakaz 
...
и программа-клиент использует его ( select ... from zakaz .... )

ТАблица ЗАКАЗ должна быть заменена на View ЗАКАЗ
с расчетом нужных характеристик на основе данных других таблиц. (select count , sum ...from ... group by ... )
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 23.12.2014 в 14:19.
evg_m вне форума Ответить с цитированием
Старый 23.12.2014, 14:57   #3
@ngel111
Пользователь
 
Регистрация: 24.02.2014
Сообщений: 12
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
НЕ НУЖНО.
Число заказов фирмы (покупателя) должно РАСЧИТЫВАТЬСЯ (считаться) по мере необходимости.
Также в таблице фирма_покупатель НЕНУЖНО поле число_заказов.

Число заказов (и другая информация о заказам) по покупателям либо считается в ПОЛЬЗОВАТЕЛЬСКОМ запросе (от программы-клиента).


Либо для этого же пишется View (представление)
Код:
create View zakaz 
...
и программа-клиент использует его ( select ... from zakaz .... )

ТАблица ЗАКАЗ должна быть заменена на View ЗАКАЗ
с расчетом нужных характеристик на основе данных других таблиц. (select count , sum ...from ... group by ... )

со всем согласен, но таково задание в институте и о "правильности задания" речи не идет.
@ngel111 вне форума Ответить с цитированием
Ответ


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



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