Extras din notiță
1. Sa se afiseze codul produsului, data de sfirsit si a unui nou termen de valabilitate a unui pret dat, calculat prin adaugarea a trei luni. Sa se selecteze doar produsele al caror cod este mai mic decit 13333 si data de sfirsit este mai mare decit data curenta plus trei luni.
Select codp,datasf,add_months(datasf,3) rdate from preturi where datasf>sysdate+90 and codp<13333
2. Sa se afiseze numele, marca, raportul VENS/SALA si veniturile totale pentru sefii de depozite. Ordonarea datelor sa fie facuta crescator dupa valorile raportului mentionat.
Select nume,marca,vens/sala,vens+sala from salariati where funct=’sef dep’ order by vens/sala desc;
3. Sa se afiseze media anuala a veniturilor totale (SALA+VENS) pentru salariatii cu functia 'VINZATO'.
Select sum(sala),sum(vens) from salariati where funct=’vanzato’
4. Sa se selecteze codul produsului, data de sfarsit, data curenta, valorile expresiilor TRUNC(DATSF+90)-TRUNC(SYSDATE) si DATASF+90. Selectia sa se realizeze pentru produsele cu codul mai mare ca13333 si data de sfirsit plus 90 de zile mai mare decit data curenta.
Select codp,datasf,sysdate,data_c,trunc(datasf+90)-trunc(sysdate) dif datasf+90 data_r from preturi where datasf+90>sysdate and codp>13333;
5. Sa se selecteze salariatii al caror nume are o lungime de noua caractere.
Select * from salariati where nume like ‘_________’
6. La selecteze coloanele CODP, DATASF la produsele cu codul mai mare ca 13333, afisand primele trei litere de la zi, luna in litere si anul cu patru cifre.
Column datasf format a25
Select codp,to_char(datasf, ‘day month YYYY’)datasf from preturi where codp>13333
7. Sa se selecteze marca si numele salariatilor care lucreaza in subordinea superiorului cu marca 1000 si au functia sef de depozit sau salariul in valoare de 35000 de lei.
Select * from salariati where funct=’sef dep’ or (sala=35000 and cods=1000)
8. Din tabela COMENZI (definita prin etichetele T1 si T2) sa se selecteze CODP, CODC, in conditiile in care valoarea comenzii este mai mare ca 50000 lei. (JOIN -ul unei tabele pe ea insasi).
Select distinct t1.codp,t2.codc from comenzi t1,comenzi t2 where t1.cant*t2.pret>500000
9. Sa se selecteze coloanele NUME, MARCA, VENS, SALA+VENS din tabela SALARIATI, in conditiile in care codul superiorului este 1000.
Select nume,marca,vens,sala+vens from salariati where cods=1000
10. Sa se afiseze cimpurile CODP, DENP, STOC si CANT, utilizand criteriul egalitatii OUTER-JOIN, pe campul comun CODP (se afiseaza datele despre datele despre acele produse pentru care exista comenzi dar nu sunt in nomenclatorul de produse). Liniile sa fie ordonate crescator dupa campul CODP.
Select comenzi.codp,denp,stoc,cant from produse,comenzi where comenzi.codp=produse.codp(+) order by comenzi.codp;
Subiect nr.2
1. Sa se afiseze numele si marca acelor angajati al caror nume se pronunta asemanator cu DORU DAN.
Select nume,marca from salariati where soundex(nume)=soundex(‘doru dan’);
2. Sa se selecteze campurile NUME si FUNCT ale salariatilor cu functia identica cu a lui RADU IOANA.
Select nume,funct frm salariati where funct=(select funct from salariati where nume=’radu ioana’);
3. Sa se selecteze codul produsului, data maxima admisa de practicare a unui pret si data curenta pentru acele produse care indeplinesc conditia ca DATASF+10 sa fie mai mare decit SYSDATE,
select codp,datasf,sysdate data_curenta from preturi where datasf+10>sysdate;
4. Sa se selecteze cimpurile MARCA, NUME, SALA, VENS pentru salariatii care au alta functie decat cea de vanzator.
Select marca nume, sala, vens from salariati where funct not in (‘vanzator’);
5. Sa se selecteze crescator dupa salariu, angajatii cu functia vinzator, si pentru care marca superiorului este 1000.
Select marca,nume,sala,vens from salariati where cods=1000 and funct=’vanzator’ order by sala;
6. Sa se selecteze si afiseze valoarea medie zilnica a comenzilor ce trebuie onorate in perioada 01-03 Iulie 2005.
Select avg(cant*pret) from comenzi where datal>’01-jul-92’ and datal<’30-jul-92’;
7. Sa se afiseze primele 5 carcatere din nume, marca si primul carcater din functie, pentru toti angajatii.
Select substr(nume,1,5),marca,substr(funct,1,1) from salariati;
8. Sa se afiseze o situatie finala prin care sa fie redate cimpurile NUME si MARCA angajatului reunite intr-un camp comun, denumit "INFORMATIE" si cimpul venituri totale anuale denumit VENIT_ANUAL. Selectia este ceruta pentru angajatii cu codul superiorului egal cu 1000.
Select nume,marca,(sala+vens)*12 from salariati where cods=1000;
Preview document
Conținut arhivă zip
- Baze de Date.doc