-- Az Olimpia feladat megoldásai

-- 1. 1980 utáni, szegedi születésű, egyéni versenyzők névsora

SELECT nev, szul_dat FROM versenyzok WHERE szul_hely = 'Szeged' AND egyen_csapat = 'e' AND szul_dat >= '1981-01-01' ORDER BY nev;

-- 2. Vajda Attila eredményei, versenyszámonként, megjegyzésekkel

SELECT versenyszam, helyezes, megjegyzes FROM versenyzok AS v 
				    LEFT JOIN eredmenyek AS e ON v.azon = e.versenyzo_azon 
				    LEFT JOIN versenyszamok AS vsz ON e.versenyszam_azon = vsz.azon WHERE v.nev = 'Vajda Attila';

SELECT versenyszam, helyezes, megjegyzes FROM versenyzok AS v, eredmenyek AS e, versenyszamok AS vsz 
    WHERE v.azon = e.versenyzo_azon AND e.versenyszam_azon = vsz.azon AND v.nev = 'Vajda Attila';


-- 3. Első helyzést elért országok

SELECT DISTINCT orszag FROM eredmenyek AS e, versenyzok AS v, orszagok AS o WHERE e.versenyzo_azon = v.azon AND v.orszag_azon = o.azon AND helyezes = 1;


-- 4. Cseh Lászlónál fiatalabb versenyzők adatai

SELECT nev, szul_hely, szul_dat FROM versenyzok WHERE szul_dat > (SELECT szul_dat FROM versenyzok WHERE nev='Cseh László');

-- 5. Versenyzőket nem indító európai országok

SELECT o.* FROM orszagok AS o LEFT JOIN versenyzok AS v ON o.azon = v.orszag_azon WHERE v.azon IS NULL AND foldresz = 'Európa';

SELECT * FROM orszagok WHERE foldresz = 'Európa' AND azon NOT IN (SELECT orszag_azon FROM versenyzok);

-- 6. Országok száma, összlakossága, átlagos területe földrészenként

SELECT foldresz, COUNT(*), SUM(lakossag), AVG(terulet) FROM orszagok WHERE foldresz IS NOT NULL GROUP BY foldresz;

-- 7. A legfiatalabb versenyzőt indító ország

SELECT orszag FROM orszagok AS o, versenyzok AS v  WHERE o.azon = v.orszag_azon AND v.szul_dat = (SELECT MAX(szul_dat) FROM versenyzok);
    
SELECT orszag FROM orszagok AS o, versenyzok AS v  WHERE o.azon = v.orszag_azon ORDER BY szul_dat DESC LIMIT 1;

-- 8. Az országok által elért pontszámok az új pont_tabla táblába

CREATE TABLE pont_tabla SELECT orszag, arany*3+ezust*2+bronz AS pont FROM orszagok, erem_tabla WHERE orszagok.azon=erem_tabla.orszag_azon HAVING pont >= 20;

CREATE TABLE pont_tabla (orszag VARCHAR(50), pont INT);
INSERT INTO pont_tabla SELECT orszag, arany*3+ezust*2+bronz AS pont FROM orszagok, erem_tabla WHERE orszagok.azon=erem_tabla.orszag_azon HAVING pont >= 20;

-- 9. A magyar női kézilabda csapat névsora életkor szerint növekvő sorrendben

SELECT nev FROM versenyzok WHERE azon IN (
    SELECT versenyzo_azon FROM csapattagok WHERE csapat_azon=(
	SELECT v.azon FROM versenyzok AS v, orszagok AS o WHERE orszag_azon=o.azon AND nev = 'Kézilabda női' AND orszag='Magyarország'
    )
) ORDER BY szul_dat DESC;


-- 10. A csapatok szul_hely mezőjének feltöltése az indító ország fővárosával

UPDATE versenyzok SET szul_hely=(SELECT fovaros FROM orszagok WHERE azon = orszag_azon) WHERE egyen_csapat = 'c';

