45 lines
1.5 KiB
MySQL
45 lines
1.5 KiB
MySQL
|
-- Oppgave 2 a (forslag 1)
|
||
|
SELECT DISTINCT STED.stedsnavn FROM ETAPPE
|
||
|
LEFT JOIN STED ON STED.sted_id = ETAPPE.til_stedid OR STED.sted_id = ETAPPE.fra_stedid
|
||
|
LEFT JOIN LØP_ETAPPE ON LØP_ETAPPE.enr = ETAPPE.enr
|
||
|
LEFT JOIN LØP ON LØP.lnr = LØP_ETAPPE.lnr
|
||
|
WHERE LØP.lnr = 1 AND LØP.aar = 2018
|
||
|
ORDER BY STED.stedsnavn;
|
||
|
|
||
|
-- Oppgave 2 a (forslag 2)
|
||
|
SELECT DISTINCT S.stedsnavn
|
||
|
FROM STED S, ETAPPE E, LØP_ETAPPE LE, LØP L
|
||
|
WHERE S.sted_id = E.til_stedid OR S.sted_id = E.fra_stedid
|
||
|
AND E.enr = LE.enr
|
||
|
AND LE.lnr = L.lnr
|
||
|
AND L.lnr = 1 AND LE.aar = 2018
|
||
|
ORDER BY S.stedsnavn;
|
||
|
|
||
|
-- Oppgave 2 b
|
||
|
SELECT e.distanse, s_f.stedsnavn AS fra, s_t.stedsnavn AS til FROM ETAPPE e
|
||
|
LEFT JOIN STED s_t ON s_t.sted_id = e.til_stedid
|
||
|
LEFT JOIN STED s_f ON s_f.sted_id = e.fra_stedid
|
||
|
LEFT JOIN LØP_ETAPPE le ON le.enr = e.enr
|
||
|
LEFT JOIN LØP l ON l.lnr = le.lnr
|
||
|
WHERE l.lnr = 1 AND l.aar = 2018
|
||
|
ORDER BY le.løpenr;
|
||
|
|
||
|
-- Oppgave 2 c
|
||
|
SELECT DISTINCT d.deltnr, d.navn FROM DELTAKER d
|
||
|
WHERE d.deltnr IN
|
||
|
(SELECT d.deltnr, COUNT(*) AS antall FROM DELTAKER d
|
||
|
LEFT JOIN TIDTAKING t ON t.deltnr = d.deltnr
|
||
|
WHERE t.lnr = 1 AND t.aar = 2018 AND t.fullført = 1
|
||
|
GROUP BY d.deltnr
|
||
|
HAVING antall = 4);
|
||
|
|
||
|
-- Oppgave 2 d
|
||
|
CREATE VIEW finnmark_deltaker AS
|
||
|
SELECT d.deltnr, COUNT(e.enr) AS etapper, SUM(t.tid) AS tot_tid FROM DELTAKER d
|
||
|
LEFT JOIN TIDTAKING t ON t.deltnr = d.deltnr
|
||
|
LEFT JOIN LØP l ON l.lnr = t.lnr
|
||
|
LEFT JOIN LØP_ETAPPE le ON le.lnr = l.lnr
|
||
|
LEFT JOIN ETAPPE e ON e.enr = le.enr
|
||
|
WHERE l.løpsnavn = "Finnmarksløpet" AND l.aar = 2018 AND t.fullført = 1
|
||
|
GROUP BY d.delntr;
|