Хитрость заключается в повороте, поэтому я покажу, как это сделать - здесь с условным агрегированием:
select t2.empid,
max(case when seqnum = 1 then accountno end) as accountno_1,
max(case when seqnum = 1 then bsb end) as bsb_1,
max(case when seqnum = 2 then accountno end) as accountno_2,
max(case when seqnum = 2 then bsb end) as bsb_2,
max(case when seqnum = 3 then accountno end) as accountno_3,
max(case when seqnum = 3 then bsb end) as bsb_3
from (select t2.*,
row_number() over (partition by empid order by accountno) as seqnum
from table2 t2
) t2
group by empid;
Я позволю вам выяснить, как объединить остальную информацию.Это действительно не так сложно.
Кроме того, обратите внимание, что первоначальное упорядочение учетной записи не сохраняется.Таблицы SQL представляют неупорядоченные наборы.Вы не показали ни одного столбца, который фиксирует исходный заказ, поэтому это заказы по номеру счетаЕсли у вас есть столбец заказа, используйте его в order by
.