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

Откуда: С-Петербург
Сообщений: 54
Есть запрос

 select t.clnt_name,
        t.clnt_law_address,
        t.clnt_phone,
        t.clnt_email,
        (select first_name.prsn_first_name
           from (select *
                   from dic_person t2
                  where t2.clnt_id = t.clnt_id
                  order by t2.prsn_id) first_name
          where rownum <= 1) first_name,
        (select third_name.prsn_third_name
           from (select *
                   from dic_person t2
                  where t2.clnt_id = t.clnt_id
                  order by t2.prsn_id) third_name
          where rownum <= 1) third_name
   from dic_client t;

пытаюсь его исполнить сообщение T.CLNT_ID invalid indentifier
Пытаюсь для каждого клиента извлечь контактное лицо с самым маленьким id
Кто просветит почему не работает?
21 мар 11, 22:54    [10405841]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
__vvp_
Member

Откуда: Санкт-Петербург
Сообщений: 1158
Alexggg99,

Уровень вложенности подзапроса большой.

STFF keep dense_rank last/first
21 мар 11, 23:03    [10405883]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
AmKad
Member

Откуда:
Сообщений: 5222
Alexggg99,

Где-то мы тебя уже видели.
21 мар 11, 23:15    [10405918]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Alexggg99
Member

Откуда: С-Петербург
Сообщений: 54
Я понял спасибо за совет, но всё же почему данный запрос выбирает набор id, когда мне нужен только самый меньший
select first_value(t.prsn_id) over(order by t.prsn_id)
  from dic_person t
 where t.clnt_id = 2

Пытался сделать так

select first_value(t.prsn_id) over(order by t.prsn_id)
  from dic_person t
 where t.clnt_id = 2
   and rownum <= 1

выбирает не верный id
Как с помощью first_value выбрать только одно значение?
23 мар 11, 08:53    [10412008]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
__vvp_
Member

Откуда: Санкт-Петербург
Сообщений: 1158
Alexggg99
Я понял спасибо за совет


Ничего ты не понял.

Ищи KEEP DENSE_RANK
23 мар 11, 09:08    [10412047]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить