create table 'passagier'(
'KundenNr' int not null,
'Vorname' varchar(20),
'Nachname' varchar(20),
'Adresse' varchar(100),
'GebDat' int,
primary key ('KundenNr')
);
create table 'reservierung'(
'KundenNr' int not null,
'ZugNr' int not null,
'Klasse' int,
'Preis' int,
'StartBHF' varchar(20),
'ZielBHF' varchar(20),
primary key ('KundenNr', 'ZugNr')
);
create table 'zug'(
'ZugNr' int not null,
'AbfahrtsDatum' int,
'AbfahrtsZeit' int,
'AnkunftsZeit' int,
'ZugStartBHF' varchar(30),
'ZugZielBHF' varchar(30),
primary key ('ZugNr')
);
insert into passagier (KundenNr, Vorname, Nachname, Adresse, GebDat)
values(12345, 'Sarah', 'Heidtmann', 'Uthmannstr', 87);
insert into reservierung (KundenNr, ZugNr, Klasse, Preis, StartBHF, ZielBHF)
values(12345, 3, 1, 10, 'Duisburg', 'Hamburg');
insert into zug (ZugNr, AbfahrtsDatum, AbfahrtsZeit, AnkunftsZeit, ZugStartBHF, ZugZielBHF)
values (3, 6, 12, 20, 'Duisburg', 'Bremen');
insert into zug (ZugNr, AbfahrtsDatum, AbfahrtsZeit, AnkunftsZeit, ZugStartBHF, ZugZielBHF)
values (4, 6, 21, 22, 'Bremen', 'Hamburg');
insert into zug (ZugNr, AbfahrtsDatum, AbfahrtsZeit, AnkunftsZeit, ZugStartBHF, ZugZielBHF)
values (5, 6, 10, 11, 'Bremen', 'Hamburg');
select z1.ZugNr AS ZugNr1, z2.ZugNr AS ZugNr2, z1.AbfahrtsDatum, z1.AbfahrtsZeit, z2.AnkunftsZeit,
z1.ZugStartBHF, z2.ZugStartBHF AS Zwischenstopp, z2.ZugZielBHF
from zug z1 JOIN zug z2
on z1.ZugZielBHF = z2.ZugStartBHF
where z1.AbfahrtsDatum = z2.Abfahrtsdatum AND z1.AbfahrtsZeit <= z2.AbfahrtsZeit;
ICAgICAgICAgICAgY3JlYXRlIHRhYmxlICdwYXNzYWdpZXInKAogICAgICAgICAgICAnS3VuZGVuTnInIGludCBub3QgbnVsbCwKICAgICAgICAgICAgJ1Zvcm5hbWUnIHZhcmNoYXIoMjApLAogICAgICAgICAgICAnTmFjaG5hbWUnIHZhcmNoYXIoMjApLAogICAgICAgICAgICAnQWRyZXNzZScgdmFyY2hhcigxMDApLAogICAgICAgICAgICAnR2ViRGF0JyBpbnQsIAogICAgICAgICAgICBwcmltYXJ5IGtleSAoJ0t1bmRlbk5yJykKICAgICAgICAgICAgKTsKICAgICAKICAgICAgICAgICAgY3JlYXRlIHRhYmxlICdyZXNlcnZpZXJ1bmcnKAogICAgICAgICAgICAnS3VuZGVuTnInIGludCBub3QgbnVsbCwKICAgICAgICAgICAgJ1p1Z05yJyBpbnQgbm90IG51bGwsCiAgICAgICAgICAgICdLbGFzc2UnIGludCwKICAgICAgICAgICAgJ1ByZWlzJyBpbnQsCiAgICAgICAgICAgICdTdGFydEJIRicgdmFyY2hhcigyMCksCiAgICAgICAgICAgICdaaWVsQkhGJyB2YXJjaGFyKDIwKSwKICAgICAgICAgICAgcHJpbWFyeSBrZXkgKCdLdW5kZW5OcicsICdadWdOcicpCiAgICAgICAgICAgICk7CiAgICAgCiAgICAgICAgICAgIGNyZWF0ZSB0YWJsZSAnenVnJygKICAgICAgICAgICAgJ1p1Z05yJyBpbnQgbm90IG51bGwsCiAgICAgICAgICAgICdBYmZhaHJ0c0RhdHVtJyBpbnQsIAogICAgICAgICAgICAnQWJmYWhydHNaZWl0JyBpbnQsCiAgICAgICAgICAgICdBbmt1bmZ0c1plaXQnIGludCwKICAgICAgICAgICAgJ1p1Z1N0YXJ0QkhGJyB2YXJjaGFyKDMwKSwKICAgICAgICAgICAgJ1p1Z1ppZWxCSEYnIHZhcmNoYXIoMzApLAogICAgICAgICAgICBwcmltYXJ5IGtleSAoJ1p1Z05yJykKICAgICAgICAgICAgKTsKICAgICAKICAgICAgICAgICAgaW5zZXJ0IGludG8gcGFzc2FnaWVyIChLdW5kZW5OciwgVm9ybmFtZSwgTmFjaG5hbWUsIEFkcmVzc2UsIEdlYkRhdCkKICAgICAgICAgICAgdmFsdWVzKDEyMzQ1LCAnU2FyYWgnLCAnSGVpZHRtYW5uJywgJ1V0aG1hbm5zdHInLCA4Nyk7CiAgICAgCiAgICAgICAgICAgIGluc2VydCBpbnRvIHJlc2VydmllcnVuZyAoS3VuZGVuTnIsIFp1Z05yLCBLbGFzc2UsIFByZWlzLCBTdGFydEJIRiwgWmllbEJIRikKICAgICAgICAgICAgdmFsdWVzKDEyMzQ1LCAzLCAxLCAxMCwgJ0R1aXNidXJnJywgJ0hhbWJ1cmcnKTsKICAgICAKICAgICAgICAgICAgaW5zZXJ0IGludG8genVnIChadWdOciwgQWJmYWhydHNEYXR1bSwgQWJmYWhydHNaZWl0LCBBbmt1bmZ0c1plaXQsIFp1Z1N0YXJ0QkhGLCBadWdaaWVsQkhGKQogICAgICAgICAgICB2YWx1ZXMgKDMsIDYsIDEyLCAyMCwgJ0R1aXNidXJnJywgJ0JyZW1lbicpOyAKICAgICAKICAgICAgICAgCWluc2VydCBpbnRvIHp1ZyAoWnVnTnIsIEFiZmFocnRzRGF0dW0sIEFiZmFocnRzWmVpdCwgQW5rdW5mdHNaZWl0LCBadWdTdGFydEJIRiwgWnVnWmllbEJIRikKICAgICAgICAgICAgdmFsdWVzICg0LCA2LCAyMSwgMjIsICdCcmVtZW4nLCAnSGFtYnVyZycpOwogICAgIAogICAgICAgICAgICBpbnNlcnQgaW50byB6dWcgKFp1Z05yLCBBYmZhaHJ0c0RhdHVtLCBBYmZhaHJ0c1plaXQsIEFua3VuZnRzWmVpdCwgWnVnU3RhcnRCSEYsIFp1Z1ppZWxCSEYpCiAgICAgICAgICAgIHZhbHVlcyAoNSwgNiwgMTAsIDExLCAnQnJlbWVuJywgJ0hhbWJ1cmcnKTsKICAgICAKICAgICAgICAgICAgc2VsZWN0IHoxLlp1Z05yIEFTIFp1Z05yMSwgejIuWnVnTnIgQVMgWnVnTnIyLCB6MS5BYmZhaHJ0c0RhdHVtLCB6MS5BYmZhaHJ0c1plaXQsIHoyLkFua3VuZnRzWmVpdCwKICAgICAgICAgICAgCXoxLlp1Z1N0YXJ0QkhGLCB6Mi5adWdTdGFydEJIRiBBUyBad2lzY2hlbnN0b3BwLCB6Mi5adWdaaWVsQkhGCiAgICAgICAgICAgIGZyb20genVnIHoxIEpPSU4genVnIHoyCiAgICAgICAgICAgIG9uIHoxLlp1Z1ppZWxCSEYgPSB6Mi5adWdTdGFydEJIRgogICAgICAgICAgICB3aGVyZSB6MS5BYmZhaHJ0c0RhdHVtID0gejIuQWJmYWhydHNkYXR1bSBBTkQgejEuQWJmYWhydHNaZWl0IDw9IHoyLkFiZmFocnRzWmVpdDs=