Egy alföldi őstermelő 100%-os gyümölcslevek készítésével és értékesítésével foglalkozik. Az őstermelő a partnerek és a 2016-os év kiszállítási adatait egy adatbázisban rögzítette. A következő feladatokban a termelt gyümölcslevek, a megrendelést leadott partnerek és a kiszállítások adatait tartalmazó adatbázissal kell dolgoznia. Az adatbázis a következő táblákat tartalmazza:
Az elsődleges kulcsokat PK-val, az idegenkulcsokat FK-val jelöltük. Az adattáblák közti kapcsolatot az alábbi ábra mutatja:
A következő feladatokat megoldó SQL parancsokat rögzítse a megoldasok.sql állományban a feladatok végén zárójelben jelölt sor alá! A javítás során csak ennek az állománynak a tartalmát értékelik. Ügyeljen arra, hogy a lekérdezésekben pontosan a kívánt mezők szerepeljenek, felesleges mezőt ne jelenítsen meg!
1. Hozzon létre a lokális SQL szerveren ostermelo néven adatbázist! Az adatbázis alapértelmezett rendezési sorrendje a magyar szabályok szerinti legyen! Ha az Ön által választott SQL szervernél nem alapértelmezés az UTF-8 kódolás, akkor azt is állítsa be alapértelmezettnek az adatbázis létrehozásánál! (1. feladat:)
2. A forrás állomány tartalmazzák a táblákat létrehozó, valamint az adatokat a táblába beszúró SQL parancsokat! Futtassa a lokális SQL szerveren elsőként a tablak.sql, majd az adatok.sql parancsfájlt!
3. Készítsen lekérdezést, amely megadja, hogy az őstermelő mely településeken rendelkezik partnerekkel! A lekérdezésben minden település neve egyszer jelenjen meg ábécé rendben! (3. feladat:)
SELECT DISTINCT partnerek.telepules FROM partnerek ORDER BY partnerek.telepules
4. Vácon az őstermelőnek egyelőre még csak egy partnere van. Listázza ki, hogy ennek a partnernek összesen hány alkalommal szállított az őstermelő gyümölcslét! A számított mező címkéje „alkalmak” legyen! (4. feladat:)
SELECT COUNT(sorsz) AS alkalmak FROM partnerek INNER JOIN kiszallitasok ON kiszallitasok.partnerid=partnerek.id WHERE partnerek.telepules="Vác"
5. Készítsen lekérdezést, amely megadja, hogy 2016. május hónapban a legnagyobb rendelést hány karton gyümölcslére adták le! Az egyetlen számított mező címkéje „legtobb” legyen! (5. feladat:)
SELECT MAX(kiszallitasok.karton) AS legtobb FROM kiszallitasok WHERE kiszallitasok.datum BETWEEN '2016.05.01' AND '2016.05.31'
6. Listázza ki, hogy mely településeken rendelkezik az őstermelő egynél több partnerrel! A listában csak a települések neve jelenjen meg! (6. feladat:)
SELECT partnerek.telepules FROM partnerek GROUP BY partnerek.telepules HAVING COUNT(partnerek.id>1)
7. Készítsen lekérdezést, ami megadja, hogy melyik 3 gyümölcslé volt a legnépszerűbb terméke az őstermelőnek! (Egy kartonban 6 doboz gyümölcslé található.) A listában a 3 legtöbbet értékesített gyümölcslé neve és az összesített dobozszám szerepeljen dobozszám szerint csökkenő sorrendben! A mezők címkéje „ital” és „doboz” legyen! (7. feladat:)
SELECT gyumolcslevek.gynev as ital,SUM(kiszallitasok.karton)*6 AS doboz FROM gyumolcslevek INNER JOIN kiszallitasok ON kiszallitasok.gyumleid=gyumolcslevek.id GROUP BY gyumolcslevek.gynev ORDER BY doboz DESC LIMIT 3