Can I suggest TWO separate tables, one for takeoffs, and one for landings. Each containing three fields:
CREATE TABLE TakeOff (
ICAO varchar(4),
FlightID varchar(8),
DateTime varchar(50)
);
CREATE TABLE Landing (
ICAO varchar(4),
FlightID varchar(8),
DateTime varchar(50)
);
Then, a simple query would allow you to match takeoffs and landings with the same FlightID:
SELECT
TakeOff.FlightID,
TakeOff.ICAO AS TakeOffAirport,
Landing.ICAO AS LandingAirport,
TakeOff.DateTime AS TakeOffTime,
Landing.DateTime AS LandingTime
FROM
TakeOff
INNER JOIN Landing ON (TakeOff.FlightID=Landing.FlightID)
WHERE
(TakeOff.DateTime < Landing.DateTime)