SQL feladatok megoldasa 2005
1. Listázza ki a piros cikkeket forgalmazó szolgáltatókat! SELECT sname FROM SUPPLIERS s, CATALOG c, PARTS p WHERE s.sid=c.sid and c.pid=p.pid and p.color= piros ; 1 Egyesult Szolgaltatok Szovetsege 2 Markolo alkatreszek 3 Mezoalkat Resz Kft
2. Listázza ki a piros vagy zöld cikkek forgalmazóit SELECT sname FROM SUPPLIERS s, CATALOG c, PARTS p WHERE s.sid=c.sid AND c.pid=p.pid AND ( p.color= piros OR p.color= zold ) ; 1 Egyesult Szolgaltatok Szovetsege 2 Egyesult Szolgaltatok Szovetsege 3 KicsiMisi Hovamesz Bt 4 Markolo alkatreszek 5 Mezoalkat Resz Kft 6 Was machst du den da 7 Ku Wu Hijasti Chui A distinct vagy a unique() kulcsszoval kiszurheted a duplán megjelenő rekordokat.
3. Listázza ki a piros és sárga cikkeket is forgalmazókat SELECT sname FROM SUPPLIERS s where sid IN ( ( SELECT c.sid FROM CATALOG c, PARTS p WHERE c.pid=p.pid AND p.color='piros' ) INTERSECT (SELECT c.sid FROM CATALOG c, PARTS p WHERE c.pid=p.pid AND p.color='sarga' ) ) 1 Egyesult Szolgaltatok Szovetsege 2 Markolo alkatreszek 3 Mezoalkat Resz Kft
4.Listázza ki a kék cikk forgalmazókat a forgalmazott kék cikkek számával SELECT sname, COUNT(p.pid) FROM SUPPLIERS s, PARTS p, CATALOG c WHERE s.sid=c.sid AND p.pid=c.pid AND p.color='kek' GROUP BY s.sname; 1 Egyesult Szolgaltatok Szovetsege 2 2 KicsiMisi Hovamesz Bt 2 3 Ku Wu Hijasti Chui 2 4 Was machst du den da2
5. Listázza ki a kék cikk forgalmazókat a kék cikkek árának összegének sorrendjében SELECT sname, sum(c.cost) as arakosszege FROM SUPPLIERS s, PARTS p, CATALOG c WHERE s.sid=c.sid AND p.pid=c.pid AND p.color='kek' GROUP BY s.sname ORDER BY arakosszege DESC; 1 Was machst du den da 32099 2 Egyesult Szolgaltatok Szovetsege 6000 3 KicsiMisi Hovamesz Bt 4868 4 Ku Wu Hijasti Chui 798
6. Listázza ki a szolgáltatókat a forgalmazott cikkek átlagos árának függvényében! SELECT sname, avg(c.cost) as atlagosar FROM SUPPLIERS s, PARTS p, CATALOG c WHERE s.sid=c.sid AND p.pid=c.pid GROUP BY s.sname ORDER BY atlagosar DESC; 1 Was machst du den da 15241,1818181818 2 Markolo alkatreszek 10280 3 Mezoalkat Resz Kft 6513,85714285714 4 Egyesult Szolgaltatok Szovetsege 5323,33333333333 5 KicsiMisi Hovamesz Bt 3174 6 Paprika Janos 2349,33333333333 7 Ku Wu Hijasti Chui 486,818181818182
7. Listázza ki hol és kinél lehet Markolo fogantyu -t vásárolni, elsőként azt a helyet ahol a legolcsóbban megkaphatjuk. select s.*, c.cost, p.* FROM suppliers s, catalog c, parts p where s.sid=c.sid and c.pid=p.pid and p.pname='markolo fogantyu' order by c.cost asc 1 7 Ku Wu Hijasti Chui 1283 Budapoest Ugorj u. 112 400 Markolo fogantyu saros 2 5 Mezoalkat Resz Kft 1233 BUdapest Hajra u. 12 9300 Markolo fogantyu saros 3 1 saros Egyesult Szolgaltatok Szovetsege 1118 Budapest Minerva u 2 11000 4 Markolo fogantyu 4 3 Markolo alkatreszek nincs cim 12300 3 Markolo fogantyu piros 5 3 Markolo alkatreszek nincs cim 12400 2 Markolo fogantyu sarga 6 1 piros Egyesult Szolgaltatok Szovetsege 1118 Budapest Minerva u 2 13340 3 Markolo fogantyu 7 1 sarga Egyesult Szolgaltatok Szovetsege 1118 Budapest Minerva u 2 13360 2 Markolo fogantyu 8 5 Mezoalkat Resz Kft 1233 BUdapest Hajra u. 12 14500 2 Markolo fogantyu sarga 9 5 Mezoalkat Resz Kft 1233 BUdapest Hajra u. 12 14600 3 Markolo fogantyu piros 10 3 Markolo alkatreszek nincs cim 15000 4 Markolo fogantyu saros Hogy nez ki az SQL parancs a duplazodasok kiszuresevel?
8. Listázza ki a cipo forgalmazókat és a forgalmazott cipok számát, aszerint sorrendezve, hogy ki árul a legtöbbet. select sname, count(*) as arultcipokszama FROM suppliers s, catalog c, parts p where s.sid=c.sid and c.pid=p.pid and p.pname like('%cipo%') group by sname order by arultcipokszama 1 Egyesult Szolgaltatok Szovetsege 4 2 KicsiMisi Hovamesz Bt 4 3 Ku Wu Hijasti Chui 4 4 Was machst du den da4
9. Listázza ki a cipo forgalmazókat és a forgalmazott cipők átlagos árát, aszerint, hogy ki árulja átlagosan a legolcsóbban őket select sname, avg(c.cost) as atlagosar FROM suppliers s, catalog c, parts p where s.sid=c.sid and c.pid=p.pid and p.pname like('%cipo%') group by sname order by atlagosar asc 1 Ku Wu Hijasti Chui 489,5 2 KicsiMisi Hovamesz Bt 4524 3 Egyesult Szolgaltatok Szovetsege 5500 4 Was machst du den da27475
10. Puspokladanyban -ban mennyibe kerül a legolcsóbb papucs? Rel Alg: P R1 = δ pname= Papucs AND adress like %Puspokladany% (SUPPLIERS CATALOG PARTS); P R2 =R1; R1-π R1 (δ R1.cost>R2.cost (R1xR2); select sname,adress, c.cost,p.pid FROM suppliers s, catalog c, parts p where s.sid=c.sid and c.pid=p.pid and p.pname= Papucs' AND s.adress like '%Puspokladany% MINUS select R1.* from ( select sname,adress, c.cost,p.pid FROM suppliers s, catalog c, parts p where s.sid=c.sid and c.pid=p.pid and p.pname='papucs and s.adress like '%Puspokladany%' ) R1, ( select sname,adress, c.cost,p.pid FROM suppliers s, catalog c, parts p where s.sid=c.sid and c.pid=p.pid and p.pname = Papucs' and s.adress like '%Puspokladany%' ) R2 where R1.cost>R2.cost ; 1 KicsiMisi Hovamesz Bt 3456 Puspokladany Harkaly u 16 469
10/b. Puspokladanyban -ban mennyibe kerül a legolcsóbb papucs? Megkeressuk a legolcsobb papucs arat, majd kivalasztjuk az ehhez az arhoz tartozo adatokat.. select sname, adress,pname cost from parts p,catalog c,suppliers s where s.sid=c.sid AND c.pid=p.pid and p.pname='papucs' and s.adress like '%Puspokladany%' and c.cost in ( select min( c.cost) FROM suppliers s, catalog c, parts p where s.sid=c.sid and c.pid=p.pid and p.pname='papucs' and s.adress like '%Puspokladany%' )
11. Listázza ki az összes cikk Rel Alg: forgalmazóját! (CATALOG PARTS) PARTS ) SUPPLIERS select sname from suppliers s where not exists ( ( select pid from parts ) MINUS (select p.pid from parts p, catalog c where c.pid=p.pid and c.sid=s.sid) );
12. Listázza ki az összes kék cikket forgalmazót! select sname from suppliers s where not exists ( ( select pid from parts where color= kek ) MINUS (select p.pid from parts p, catalog c where c.pid=p.pid and c.sid=s.sid and p.color= kek ) ); Results: 1 Egyesult Szolgaltatok Szovetsege 2 KicsiMisi Hovamesz Bt 3 Was machst du den da 4 Ku Wu Hijasti Chui