Oracle 11g коррелированный подзапрос, возвращающий несколько столбцов - PullRequest
0 голосов
/ 13 декабря 2011

Первый запрос получает идентификатор и время регистрации:

SELECT
  t1.mid
  t1.regtime

Подзапрос должен перейти к другой таблице, а SELECT address, city from t2 WHERE t2.mid = t1.mid AND MAX(t2.seqs)

t2 может содержать несколько средних с разными порядковыми номерами. Итак, мы хотим, чтобы средние значения совпадали, а seqs был самым высоким.

Проблема: возвращение нескольких столбцов в 1 подзапросе при получении максимального значения t2.mid.

Желаемый конечный результат:

 mid | regtime | address | city

1 Ответ

5 голосов
/ 13 декабря 2011
with t as 
    ( select t2.mid, address, city 
        from t2 
       where t2.seqs = ( select max(tt.seqs) 
                           from t2 tt
                          where tt.mid = t2.mid ) 
     ) 
select t1.mid, t1.regtime, t.address, t.city from t1, t where t1.mid = t.mid

Должно работать.

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...