select M.serial_number,MAX(decode(row_cnt,1,pid,null)) p1,
MAX(decode(row_cnt,2,pid,null)) p2,
MAX(decode(row_cnt,3,pid,null)) p3,
MAX(decode(row_cnt,4,pid,null)) p4,
MAX(decode(row_cnt,5,pid,null)) p5
from (
select P.WORK_ORDER,P.SERIAL_NUMBER,SAJET.F_GET_PART_NO(P.MODEL_ID) MODEL_NAME,
P.OUT_PROCESS_TIME,SAJET.F_GET_PROCESS_NAME(PROCESS_ID) pid,
row_number() over(partition by P.SERIAL_NUMBER order by P.serial_number,P.OUT_PROCESS_TIME) row_cnt
from Sa.SN_TRAVEL p where P.SERIAL_NUMBER in(SELECT s.serial_number
FROM sajet.g_sn_status s, sajet.g_wo_base b, sajet.sys_part a
WHERE s.process_id NOT IN (100008, 100018,100016,100128)
AND s.model_id = b.model_id
AND s.work_order = b.work_order
AND a.part_id = b.model_id
) m
group by serial_number
ORDER BY M.serial_number
MAX(decode(row_cnt,2,pid,null)) p2,
MAX(decode(row_cnt,3,pid,null)) p3,
MAX(decode(row_cnt,4,pid,null)) p4,
MAX(decode(row_cnt,5,pid,null)) p5
from (
select P.WORK_ORDER,P.SERIAL_NUMBER,SAJET.F_GET_PART_NO(P.MODEL_ID) MODEL_NAME,
P.OUT_PROCESS_TIME,SAJET.F_GET_PROCESS_NAME(PROCESS_ID) pid,
row_number() over(partition by P.SERIAL_NUMBER order by P.serial_number,P.OUT_PROCESS_TIME) row_cnt
from Sa.SN_TRAVEL p where P.SERIAL_NUMBER in(SELECT s.serial_number
FROM sajet.g_sn_status s, sajet.g_wo_base b, sajet.sys_part a
WHERE s.process_id NOT IN (100008, 100018,100016,100128)
AND s.model_id = b.model_id
AND s.work_order = b.work_order
AND a.part_id = b.model_id
) m
group by serial_number
ORDER BY M.serial_number