Объединение трех таблиц на основе максимального значения в одной таблице с помощью оракула - PullRequest
0 голосов
/ 01 ноября 2018

У меня вопрос к объединению таблиц. У меня есть три стола. В таблице 2 есть разные значения для одного и того же идентификатора, и мне нужно получить строку на основе более высокого значения. Пожалуйста, помогите мне. Я новичок в этой концепции. До сих пор я пробовал

select a.trefno, a.tstatusno, max(b.tstatusno), b.trefno, distinct c.trefno, c.status
from Table1 a
inner join Table3 c on a.trefno = c.TREFNO
inner join Table2 b on c.trefno = b.TREFNO
where b.tstatusno = (select max(tstatsno) from Table2 t where b.tref = t.trefno group by t.trefno)
group by a.trefno

Это три таблицы, которые я показал

X

Я хочу объединить все три таблицы с tref в качестве уникального идентификатора и max (tstatusno) из таблицы 2.

X

1 Ответ

0 голосов
/ 01 ноября 2018

Вы можете использовать оконные функции:

select a.trefno, a.tstatusno, b.tstatusno, b.trefno, c.trefno, c.status
from Table1 a inner join
     Table3 c
     on a.trefno = c.TREFNO inner join
     (select b.*,
             row_number() over (partition by b.trefno order by b.statusno desc) as seqnum
      from Table2 b
     ) b 
     on c.trefno = b.TREFNO and b.seqnum = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...