-
Notifications
You must be signed in to change notification settings - Fork 0
/
kladd.txt
201 lines (171 loc) · 5.87 KB
/
kladd.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
-- Henter alle ledige plasser for en TogRuteForeKomst:
SELECT ForekomstID, Dato, SitteplassID
FROM TogRuteForekomst
NATURAL JOIN SattSammenAv
NATURAL JOIN Sitteplass
WHERE ForekomstID = 1
AND ForekomstID = OppsettID
EXCEPT
SELECT ForekomstID, Dato, SitteplassID
FROM TogRuteForekomst
NATURAL JOIN Vognoppsett
NATURAL JOIN SattSammenAv
NATURAL JOIN Vogn
NATURAL JOIN Sitteplass
NATURAL JOIN SitteplassPåBillett
NATURAL JOIN Billett
WHERE ForekomstID = 1
AND RuteID = 1
AND EXISTS (SELECT SitteplassID
FROM SitteplassPåBillett
WHERE SitteplassPåBillett.SitteplassID = Sitteplass.SitteplassID
)
-- Henter alle tatte plasser mellom to stasjoner på en TogRuteForeKomst:
SELECT Dato, RuteID, VognType, SitteplassID, BillettID, StartStasjon, EndeStasjon
FROM TogRuteForekomst
NATURAL JOIN Vognoppsett
NATURAL JOIN SattSammenAv
NATURAL JOIN Vogn
NATURAL JOIN Sitteplass
NATURAL JOIN SitteplassPåBillett
NATURAL JOIN Billett
WHERE ForekomstID = 1
AND RuteID = 1
AND StartStasjon = "Trondheim"
AND EndeStasjon = "Mosjøen"
AND EXISTS (SELECT SitteplassID
FROM SitteplassPåBillett
WHERE SitteplassPåBillett.SitteplassID = Sitteplass.SitteplassID
)
'''
cursor.execute(f"""
SELECT ForekomstID, Dato, SitteplassID
FROM TogRuteForekomst
NATURAL JOIN SattSammenAv
NATURAL JOIN Sitteplass
WHERE ForekomstID = 1
AND ForekomstID = OppsettID
EXCEPT
SELECT ForekomstID, Dato, SitteplassID
FROM TogRuteForekomst
NATURAL JOIN Vognoppsett
NATURAL JOIN SattSammenAv
NATURAL JOIN Vogn
NATURAL JOIN Sitteplass
NATURAL JOIN SitteplassPåBillett
NATURAL JOIN Billett
WHERE ForekomstID = 1
AND RuteID = 1
AND EXISTS (SELECT SitteplassID
FROM SitteplassPåBillett
WHERE SitteplassPåBillett.SitteplassID = Sitteplass.SitteplassID
AND Billett.StartStasjon <> {get_stations_between(start, stop, route)}
AND Billett.StartStasjon <> {start}
AND Billett.EndeStasjon <> {get_stations_between(start, stop, route)}
AND Billett.EndeStasjon <> {stop}
)
""")
return cursor.fetchall()
'''
# h) For en bruker skal man kunne finne all informasjon om de kjøpene hen har gjort for fremtidige reiser
""" Henter opptatte plasser:
SELECT Dato, RuteID, VognType, SitteplassID, BillettID, StartStasjon, EndeStasjon
FROM TogRuteForekomst
NATURAL JOIN Vognoppsett
NATURAL JOIN SattSammenAv
NATURAL JOIN Vogn
NATURAL JOIN Sitteplass
NATURAL JOIN SitteplassPåBillett
NATURAL JOIN Billett
WHERE ForekomstID = 1
AND RuteID = 1
AND EXISTS (SELECT SitteplassID
FROM SitteplassPåBillett
WHERE SitteplassPåBillett.SitteplassID = Sitteplass.SitteplassID
)
"""
""" Henter alle plasser til en TogRuteForekomst
SELECT ForekomstID, Dato, SitteplassID
FROM TogRuteForekomst
NATURAL JOIN SattSammenAv
NATURAL JOIN Sitteplass
WHERE ForekomstID = 1
AND ForekomstID = OppsettID
"""
""" Henter alle LEDIGE plasser på en TogRuteForekomst
SELECT ForekomstID, Dato, SitteplassID
FROM TogRuteForekomst
NATURAL JOIN SattSammenAv
NATURAL JOIN Sitteplass
WHERE ForekomstID = 1
AND ForekomstID = OppsettID
AND Billett.StartStasjon <> (SELECT Stasjonsnavn
FROM StasjonITabell NATURAL JOIN TogRuteTabell
WHERE RuteID = 1
AND tid > (SELECT tid FROM StasjonITabell WHERE Stasjonsnavn = "Trondheim")
AND tid < (SELECT tid FROM StasjonITabell WHERE Stasjonsnavn = "Mosjøen")
)
AND Billett.StartStasjon <> "Trondheim"
AND Billett.EndeStasjon <> (SELECT Stasjonsnavn
FROM StasjonITabell NATURAL JOIN TogRuteTabell
WHERE RuteID = 1
AND tid > (SELECT tid FROM StasjonITabell WHERE Stasjonsnavn = "Trondheim")
AND tid < (SELECT tid FROM StasjonITabell WHERE Stasjonsnavn = "Mosjøen")
)
AND Billett.EndeStasjon <> "Mosjøen"
EXCEPT
SELECT ForekomstID, Dato, SitteplassID
FROM TogRuteForekomst
NATURAL JOIN Vognoppsett
NATURAL JOIN SattSammenAv
NATURAL JOIN Vogn
NATURAL JOIN Sitteplass
NATURAL JOIN SitteplassPåBillett
NATURAL JOIN Billett
WHERE ForekomstID = 1
AND RuteID = 1
AND EXISTS (SELECT SitteplassID
FROM SitteplassPåBillett
WHERE SitteplassPåBillett.SitteplassID = Sitteplass.SitteplassID
)
"""
'''
SELECT *
FROM StasjonITabell NATURAL JOIN TogRuteTabell
WHERE RuteID = 1
AND Stasjonsnavn <> (SELECT Stasjonsnavn
FROM StasjonITabell NATURAL JOIN TogRuteTabell
WHERE RuteID = 1
AND tid > (SELECT tid FROM StasjonITabell WHERE Stasjonsnavn = "Trondheim")
AND tid < (SELECT tid FROM StasjonITabell WHERE Stasjonsnavn = "Mosjøen")
)
AND Stasjonsnavn <> "Trondheim"
'''
'''
SELECT ForekomstID, RuteID, Dato, VognID, VognType, RadStørrelse, SitteplassID
FROM TogRuteForekomst
NATURAL JOIN Vognoppsett
NATURAL JOIN SattSammenAv
NATURAL JOIN Vogn
NATURAL JOIN Sitteplass
WHERE ForekomstID = 1
AND RuteID = 1
AND NOT EXISTS (SELECT SitteplassID
FROM SitteplassPåBillett NATURAL JOIN Billett
WHERE SitteplassPåBillett.SitteplassID = Sitteplass.SitteplassID
AND Billett.StartStasjon <> (SELECT Stasjonsnavn
FROM StasjonITabell NATURAL JOIN TogRuteTabell
WHERE RuteID = 1
AND tid > (SELECT tid FROM StasjonITabell WHERE Stasjonsnavn = "Trondheim")
AND tid < (SELECT tid FROM StasjonITabell WHERE Stasjonsnavn = "Mosjøen")
)
AND Billett.StartStasjon <> "Trondheim"
AND Billett.EndeStasjon <> (SELECT Stasjonsnavn
FROM StasjonITabell NATURAL JOIN TogRuteTabell
WHERE RuteID = 1
AND tid > (SELECT tid FROM StasjonITabell WHERE Stasjonsnavn = "Trondheim")
AND tid < (SELECT tid FROM StasjonITabell WHERE Stasjonsnavn = "Mosjøen")
)
AND Billett.EndeStasjon <> "Mosjøen"
)
'''