|
база данных в informix(операторы update, delete и триггер)
|
|||
---|---|---|---|
#18+
Здравствуйте уважаемые форумчане!... Очень прошу помочь с базой данных в информиксе, а конкретно - написать пару операторов и триггер. (база выполняется в gentoo linux) Условие: "Разработайте БД, которая решает задачу автоматизированого обслуживания депозитных операций банка. С помощью языка DDL спроэктируйте схему базы данных, достаточной для решения следующих задач языками DML и SPL: 1. Наполнение БД данными про юридические особы, которые размещают деньги на депозитных счетах банка. 2. Получите информацию про отделения банка, в котором проведена операция по открытию найбольшего депозитного счета в банке. 3. Объедените информацию, что касается открытия депозитных счетов с двух выбранных отделений банка и закрепите данную информацию за указанным третьим отделением. 4. Уничтожте информацию про клиентов, которые не пользовались услугами открытия депозитных счетов банка на протяжении последних пяти лет и имеют лишь закрытые депозитные счета, что открывались только в одном отделении банка. 5. Сделайте тригер, который проводит контроль невозможности открытия депозитных счетов клиентов в каждом отдельном отделении банка, кроме главного, за один день, на общую сумму, что не привышает 500000 д.о." Первые два пункта я сделал, но не получается 3,4 пункты и 5(с триггером). Значит вот структура моей базы данных: 1таблица:"OSOBA" столбцы: *ID, NAME 2таблица:"RAHUNOK" столбцы: *ID,*OSOBA_ID, *OTDEL_ID, SUMA, TERM(срок), ZAKRYT(логическое - типа закрыт счет или открыт) 3таблица:"OTDEL" столбцы: *ID, NOMER_OTDELA, GLAVNY(тоже логическое - типа главный отдел или нет) Далее представляю первый пункт - сама база: CREATE TABLE OSOBA ( ID SERIAL NOT NULL PRIMARY KEY, NAME VARCHAR(30) NOT NULL, ); CREATE TABLE RAHUNOK ( ID SERIAL NOT NULL, OSOBA_ID INTEGER NOT NULL, OTDEL_ID INTEGER NOT NULL, SUMA MONEY NOT NULL, TERM DATE NOT NULL, ZAKR INTEGER DEFAULT 1 NOT NULL CHECK (ZAKR IN(0,1)), PRIMARY KEY (ID, OSOBA_ID, OTDEL_ID) ); CREATE TABLE OTDEL ( ID SERIAL NOT NULL PRIMARY KEY, NOMER_OTDELA INTEGER NOT NULL, GLAVN INTEGER default 1 NOT NULL CHECK (GLAVN IN(0,1)) ); далее заполнение таблиц: INSERT INTO OSOBA VALUES (0,"P1") INSERT INTO OSOBA VALUES (0,"P2") INSERT INTO OSOBA VALUES (0,"P3") INSERT INTO OSOBA VALUES (0,"P4") INSERT INTO OSOBA VALUES (0,"P5") INSERT INTO OSOBA VALUES (0,"P6") INSERT INTO OSOBA VALUES (0,"P7") INSERT INTO OSOBA VALUES (0,"P8") INSERT INTO OSOBA VALUES (0,"P9") INSERT INTO OSOBA VALUES (0,"P10") INSERT INTO RAHUNOK VALUES (0,1, 1, 200, "01.10.04", 1) INSERT INTO RAHUNOK VALUES (0,2, 2, 1000, "01.10.05", 0) INSERT INTO RAHUNOK VALUES (0,3, 3, 50000, "01.10.07", 1) INSERT INTO RAHUNOK VALUES (0,4, 4, 3000, "01.10.03", 0) INSERT INTO RAHUNOK VALUES (0,5, 5, 10000, "01.10.06", 1) INSERT INTO RAHUNOK VALUES (0,6, 3, 2500, "01.10.08", 0) INSERT INTO RAHUNOK VALUES (0,7, 1, 3600, "01.10.10", 0) INSERT INTO RAHUNOK VALUES (0,8, 4, 12000, "01.10.06", 1) INSERT INTO RAHUNOK VALUES (0,9, 5, 88000, "01.10.02", 0) INSERT INTO RAHUNOK VALUES (0,10, 1, 70000, "01.10.03", 0) INSERT INTO OTDEL VALUES (0,1, 1) INSERT INTO OTDEL VALUES (0,2, 0) INSERT INTO OTDEL VALUES (0,3, 0) INSERT INTO OTDEL VALUES (0,4, 0) INSERT INTO OTDEL VALUES (0,5, 0) Далее привожу запрос по второму пункту: SELECT OTDEL.NOMER_OTDELA FROM OTDEL, RAHUNOK WHERE OTDEL.ID=RAHUNOK.OTDEL_ID GROUP BY OTDEL.NOMER_OTDELA HAVING MAX(RAHUNOK.SUMA)>1 Пожалуйста, помогите с написанием 3 пункта - там нужен оператор update, что б типа информация с одного отдела заменялась на информацию по другому, совершенно не представляю как это реализовать. С 4 пунктом - надо сделать либо вложеный запрос с оператором DELETE либо временную таблицу, либо что-то еще, вообщем помогите. В 5 пункте надо сделать триггер, в котором я вообще практически "0". Очень надеюсь на вашу помощь, мне надо скоро это сдавать, на вас вся надежда. Если что, спрашивайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2010, 22:31 |
|
база данных в informix(операторы update, delete и триггер)
|
|||
---|---|---|---|
#18+
Неужели Informix стали преподавать в ВУЗах!?!?! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2010, 22:56 |
|
база данных в informix(операторы update, delete и триггер)
|
|||
---|---|---|---|
#18+
да((((( ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2010, 23:16 |
|
база данных в informix(операторы update, delete и триггер)
|
|||
---|---|---|---|
#18+
А в каком? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2010, 23:25 |
|
база данных в informix(операторы update, delete и триггер)
|
|||
---|---|---|---|
#18+
в экономическом)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2010, 23:27 |
|
база данных в informix(операторы update, delete и триггер)
|
|||
---|---|---|---|
#18+
КНЕУ(Киев) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2010, 23:28 |
|
база данных в informix(операторы update, delete и триггер)
|
|||
---|---|---|---|
#18+
Народ, хотя б с триггером помогите....... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2010, 21:03 |
|
база данных в informix(операторы update, delete и триггер)
|
|||
---|---|---|---|
#18+
PavelSSSЗдравствуйте уважаемые форумчане!... Очень прошу помочь с базой данных в информиксе, а конкретно - написать пару операторов и триггер. (база выполняется в gentoo linux) Условие: "Разработайте БД, которая решает задачу автоматизированого обслуживания депозитных операций банка. С помощью языка DDL спроэктируйте схему базы данных, достаточной для решения следующих задач языками DML и SPL: 1. Наполнение БД данными про юридические особы, которые размещают деньги на депозитных счетах банка. 2. Получите информацию про отделения банка, в котором проведена операция по открытию найбольшего депозитного счета в банке. Далее привожу запрос по второму пункту: SELECT OTDEL.NOMER_OTDELA FROM OTDEL, RAHUNOK WHERE OTDEL.ID=RAHUNOK.OTDEL_ID GROUP BY OTDEL.NOMER_OTDELA HAVING MAX(RAHUNOK.SUMA)>1 Неправильно. select OTDEL.NOMER_OTDELA FROM OTDEL, RAHUNOK WHERE OTDEL.ID=RAHUNOK.OTDEL_ID AND RAHUNOK.SUMA IN (select max(SUMA ) from rahunok) (select otdel_id from ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2010, 23:11 |
|
база данных в informix(операторы update, delete и триггер)
|
|||
---|---|---|---|
#18+
PavelSSSНарод, хотя б с триггером помогите....... create trigger tr_RAHUNOK insert on RAHUNOK referencing new as new_tab for each row ( execute procedure check_rahunok (new_tab.OSOBA_ID, new_tab.OTDEL_ID, new_tab.SUMA, new_tab.TERM) ); create procedure check_rahunok (p_OSOBA_ID int, p_OTDEL_ID int, p_suma money, p_term date); define l_glavn INT; LET l_glavn = SELECT glavn from otdel where id = p_otdel_id; if ( (l_glavn = 0) and ((p_suma + (select sum(suma) from rahunok where osoba_id = p_osoba_id and term = p_term)) > 500000 )) THEN raise exception-746,0,"Duzhe bagato groshiv ! "; end if end procedure; ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2010, 23:27 |
|
|
start [/forum/topic.php?fid=44&msg=36990187&tid=1607441]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
134ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 244ms |
0 / 0 |