Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Помогите решить задачу  [new]
kosheen2004
Member

Откуда:
Сообщений: 14
Есть необходимость хранить в базе информацию о кредитных договорах (номер, класс договора, филиал, валюта – все данные строковые для простоты), о настройках (код настройки, ссылка на настройку верхнего уровня, класс договора, филиал договора, валюта договора, значение настройки). Настройки хранятся в иерархически заданном справочнике, при этом иерархия следующая. Если рассмотреть одну ветку настройки по одному коду, то на верхнем уровне хранится общая для всех настройка, у которой пусты класс, филиал и валюта, на следующем уровне хранится настройка с заполненным значением класса договора, на следующем – с заполненными классом и филиалом, на последнем – с заполненными классом, филиалом и валютой.
Пример:
ID PARENT_ID CLASS_ID FILIAL FINTOOL VALUE
1 Общее
2 1 PRIVATE Для частных лиц
3 2 PRIVATE 001 Для частных лиц 001 филиала
4 2 PRIVATE 002 Для частных лиц 002 филиала
5 3 PRIVATE 001 RUR Для частных лиц 001 филиала в рублях
6 3 PRIVATE 001 USD Для частных лиц 001 филиала в долларах США

Задание : Написать запрос поиска настройки до договору. Договор задан по номеру. Поиск настройки должен быть осуществлен по принципу максимального соответствия по критериям (класс, филиал, валюта), т.е. если есть, то выбрать настройку по всем трём критериям, таким же, как в договоре, если нет, то по двум, если нет, то по одному, если нет, то взять общее значение.
Примечание: эта задача на иерархический запрос (connect by)
7 апр 10, 14:13    [8592518]     Ответить | Цитировать Сообщить модератору
 Re: Помогите решить задачу  [new]
kosheen2004
Member

Откуда:
Сообщений: 14


К сообщению приложен файл. Размер - 0Kb
7 апр 10, 14:14    [8592531]     Ответить | Цитировать Сообщить модератору
 Re: Помогите решить задачу  [new]
Elic
Member

Откуда:
Сообщений: 29979
kosheen2004
Задание : Написать запрос ...
Примечание: эта задача на иерархический запрос (connect by)
С этим - сюда.
7 апр 10, 14:20    [8592581]     Ответить | Цитировать Сообщить модератору
 Re: Помогите решить задачу  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
kosheen2004
Написать запрос поиска настройки до договору
А почему бы вместо комбинации параметров "класс договора, филиал, валюта"
не хранить в таблице договоров только ID "настройки" ?
А по ID "настройки" всегда легко при необходимости найти класс, филиал и валюту
7 апр 10, 14:22    [8592598]     Ответить | Цитировать Сообщить модератору
 Re: Помогите решить задачу  [new]
kosheen2004
Member

Откуда:
Сообщений: 14
значение Value это и есть ID настройки
7 апр 10, 14:24    [8592612]     Ответить | Цитировать Сообщить модератору
 Re: Помогите решить задачу  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
И что Вам мешает сделать join таблицы договоров с таблицей настроек по условию Value=ID ?
7 апр 10, 14:26    [8592641]     Ответить | Цитировать Сообщить модератору
 Re: Помогите решить задачу  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
kosheen2004
значение Value это и есть ID настройки
погодите-погодите, Value - это поле какой таблицы ?
7 апр 10, 14:28    [8592653]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить