Это pivot
дает желаемый результат:
select bkcol1, dept, year_pd, tran_date,
p1_ty, p2_ty, p3_ty, p4_ty, p5_ty,
p1_ly, p2_ly, p3_ly, p4_ly, p5_ly
from input
pivot (sum(ty_sales) ty, sum(ly_sales) ly for pivot_name in ('P1' p1, 'P2' p2, 'P3' p3, 'P4' p4, 'P5' p5))
order by dept, tran_date
демо
Добавьте псевдонимы для столбцов, если хотите, чтобы другие.