![]() |
|
Модераторы: Poseidon |
![]()
|
|
| vzf |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 10.9.2005 Репутация: нет Всего: 5 |
Помогите пожалуйста написать представления для БД Oracle
Задание следующее. Библиотечный каталог реализован тремя таблицами:
Необходимо написать представление FolioForRef, которое перечисляет книги со специально сгенерированным ссылочным кодом.Ссылочный код представляет собой конкатенацию фамилии первого (по порядку поля Nr) автора, год издания первой редакции, и дополнительный порядковый номер, если первые два значения не обеспечивают уникальности, с пробелом в качестве разделителя. Дополнительный порядковый номер начинается с единицы и базируется на порядке каталожных номеров. Поля представления: Ref_Code, Title, Edition_Nr, Year, ISBN, Category_Code Представление необходимо написать без использования аналитических и собственных функций. У меня проблема с дополнительным порядковым номером. Как его добавлять, как опредлить обеспечивают ли два других значения уникальности? Без этого порядкового номера вроде можно написать так:
--------------------
Java - Write Once, Test EveryWhere! |
||||
|
|||||
| achepkunov |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 13.12.2006 Репутация: нет Всего: 1 |
Задание хитрее, так что "and Book.edition_nr = 1" надо убрать, а вот в ref_code нужно выводить результат подзапроса, достающий первую редакцию книги. Я так понимаю. далее. Если можно всегда писать доп. порядковый номер (1), в этом подзапросе должен быть еже один подзапрос:
если 1 всегда писать нельзя, то туда же добавить decode. Как определить первый год? Хорошо если только по совпадению названия книги. Хуже если по названию и списку авторов, но сделай пока по названию: (select to_char(min(year)) where title = ext.title). Здесь предполагается, что первая редакция вышла раньше всех. И пробел-разделитель to_char вроде сам добавит. |
||||
|
|||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |