add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
WITH yourTable AS (
SELECT 12345 AS part_no, 'a1b2c3' AS serial_no, 9876543 AS car_vin, 'INSTALL' AS event_type, date '2019-01-01' AS event_date FROM dual UNION ALL
SELECT 12345, 'a1b2c3', 9876543, 'REMOVE', date '2019-08-01' FROM dual UNION ALL
SELECT 54321, 't3c4a8', 9876543, 'INSTALL', date '2019-03-01' FROM dual
)

SELECT
part_no,
serial_no,
car_vin,
MAX(CASE WHEN event_type = 'INSTALL' THEN event_date END) AS install_date,
MAX(CASE WHEN event_type = 'REMOVE' THEN event_date END) AS remove_date
FROM yourTable
GROUP BY
part_no,
serial_no,
car_vin
ORDER BY
part_no;





PART_NO SERIAL_NO CAR_VIN INSTALL_DATE REMOVE_DATE
12345 a1b2c3 9876543 01-JAN-19 01-AUG-19
54321 t3c4a8 9876543 01-MAR-19 null