Documente Academic
Documente Profesional
Documente Cultură
Rezolvare Subiecte Baze de Date Neintensiv
Rezolvare Subiecte Baze de Date Neintensiv
Subiectul nr.1
Să se creeze o tabelă cu structura: Cod_numeric_personal,Numele,Data_angajarii,
Data_naşterii şi să se introducă 8 articole cu date care să corespundă cerinţelor următoare:
a)Să se afişeze pe ecran toţi angajaţii cu o cevchime mai mare de 10 ani.
b)Să se afişeze toate persoanele a căror zi de naştere se sărbătoreşte astăzi.
Cerinţa a)
SELECT * FROM Angajati
WHERE CURRENT_DATE - Data_angajarii>3650
Cerinţa b)
SELECT * FROM Angajati
WHERE (LAST_DAY(CURRENT_DATE)-CURRENT_DATE=LAST_DAY(Data_nasterii)-Data_nasterii)
AND MOD(MONTHS_BETWEEN(CURRENT_DATE,Data_nasterii),12)=0
Subiectul nr.2
Să se creeze o tabelă cu structura: Număr bilet, Oraş, Preţ, Număr_vagon şi să se
introducă 8 articole. Cerinţe
a)Să se calculeze suma realizată în urma vânzării tuturor biletelor înregistrate în
tabelă.
b)Să se afişeze pe ecran numărul de bilete vândute cu destinaţia un anumit oraş X,
citit de la tastatură.
Crearea structurii tabelului
CREATE TABLE Bilete (numar_bilet NUMBER(10) PRIMARY KEY, oras VARCHAR(50) ,
pret NUMBER(5,2), numar_vagon NUMBER(2,0))
Inserarea datelor in tabel
INSERT INTO Bilete VALUES (1,'Bucuresti', 25, 2)
INSERT INTO Bilete VALUES (2,'Sibiu', 45, 1)
INSERT INTO Bilete VALUES (3,'Bucuresti', 28.50, 2)
INSERT INTO Bilete VALUES (4,'Rm. Valcea', 17, 4)
INSERT INTO Bilete VALUES (5,'Calimanesti', 20, 1)
INSERT INTO Bilete VALUES (6,'Bucuresti', 30, 6)
INSERT INTO Bilete VALUES (7,'Sibiu', 40, 6)
INSERT INTO Bilete VALUES (8,'Rm. Valcea', 20.5, 4)
Cerinţa a)
SELECT SUM(pret) "Vanzare totala"
FROM Bilete
Cerinţa b)
SELECT SUM(pret) "Vanzare totala"
FROM Bilete
WHERE UPPER(oras)=UPPER(:Destinatie)
Subiectul nr.3
Să se creeze o tabelă cu structura : Cod_casetă. Nume_film, Actor_principal, Tip. Să se
introducă în tabelă minimum 8 articole , cu date care să corespundă următoarelor cerinţe:
a)Să se şteargă din tabelă toate filmele de tip HORROR.
b)Să se listeze pe monitor toate filmele în care joacă actorul RICHARD GERE.
Subiectul nr.4
Să se creeze o tabelă cu următoarea structură:Cod_ furnizor, Cod_material, Nume_
material, Pret, Cantitate. Să se introducă în tabelă minimum 8 articole.
Cerinţe:
a)Să se afişeze toate ofertele pentru materialul X – dat de la tastatură, crescător,
după preţul oferit.
b)Să se afişeze preţul total al materialelor oferite de furnizorul Y- citit de la tastatură.
Datele introduse în tabelă trebuie să corespundă cerinţelor enunţate mai sus.
Subiectul nr.5
Să se creeze o tabelă cu structura: Nume_muncitor, Cod_atelier, Număr_piese_produse
şi să se introducă 8 articole (un articol –un muncitor, codul unui atelier este un număr de la 1
la 9; pot fi şi mai mulţi muncitori într-un atelier şi toţi au nume diferite ).Cerinţe:
a)Să se afişeze numărul atelierelor din tabelă.
b)Să se afişeze numărul de piese produse de fiecare atelier.
Crearea structurii tabelului
CREATE TABLE Muncitori (nume_muncitor VARCHAR(50) UNIQUE, cod_atelier NUMBER(1)
CHECK (cod_atelier>=1 AND cod_atelier<=9), numar_piese_produse NUMBER(5))
Inserarea datelor in tabel
INSERT INTO Muncitori VALUES ('Popa Ion',1,100)
INSERT INTO Muncitori VALUES ('Popa Mihai',1,200)
INSERT INTO Muncitori VALUES (‘Deaconu Dorel',2,500)
INSERT INTO Muncitori VALUES ('Popescu Vlad',3,400)
INSERT INTO Muncitori VALUES ('Popescu Victor',2,150)
INSERT INTO Muncitori VALUES ('Enache Vasile',4,200)
INSERT INTO Muncitori VALUES ('Albu Andrei',2,400)
INSERT INTO Muncitori VALUES ('Banu Gheorghe',2,300)
Cerinţa a)
SELECT COUNT(DISTINCT cod_atelier) "Numar de ateliere"
FROM Muncitori
Cerinţa b)
SELECT cod_atelier, SUM(numar_piese_produse) "Piese produse"
FROM Muncitori
GROUP BY cod_atelier
Subiectul nr.6
Să se creeze o tabelă cu structura: Nume_muncitor, Cod_atelier, Număr_piese_produse
şi să se introducă 8 articole (un articol –un muncitor, codul unui atelier este un număr de la
1 la 9; pot fi şi mai mulţi muncitori într-un atelier şi toţi au nume diferite ).Cerinţe:
a)Să se afişeze codul atelierului din tabelă cu cei mai mulţi muncitori.
b)Să se afişeze codul atelierului în care numărul de piese produse este mai mare
decât o valoare introdusă de la tastatură.
Cerinţa a)
SELECT cod_atelier, COUNT(*) "Numar maxim de muncitori"
FROM Muncitori
GROUP BY cod_atelier
HAVING COUNT(*)=(SELECT MAX(COUNT(*)) FROM Muncitori GROUP BY Cod_atelier)
Cerinţa b)
SELECT cod_atelier, SUM(numar_piese_produse) "Piese produse de atelier"
FROM Muncitori
GROUP BY cod_atelier
HAVING SUM(numar_piese_produse)>:x
Subiectul nr.7
Să se creeze o tabelă cu structura: Nume_muncitor, Cod_atelier, Număr_piese_produse
şi să se introducă 8 articole (un articol –un muncitor, codul unui atelier este un număr de la 1
la 9 pot fi şi mai mulţi muncitori într-un atelier şi toţi au nume diferite ).Cerinţe
a)Se şterg articolele pentru care producţia unui muncitor este mai mică decât o
valoare introdusă de la tastatură.Să se afişeze numele acestora şi codurile
atelierelor din care făceau parte.
b)Să se afişeze numărul atelierelor ce au rămas cu cel mult doi muncitori în urma
ştergerii articolelor de la cerinţa a).
Cerinţa a)
Pentru afişarea muncitorilor cu producție mai mică decât x
SELECT nume_muncitor, cod_atelier FROM Muncitori
WHERE numar_piese_produse<:x
Pentru ştergerea acestora
DELETE FROM Muncitori
WHERE numar_piese_produse<:x
Cerinţa b)
SELECT COUNT(*) "Nr. ateliere cu maximum 2 ang."
FROM Muncitori WHERE cod_atelier IN (
SELECT cod_atelier
FROM Muncitori
GROUP BY cod_atelier
HAVING COUNT(*)<=2)
Subiectul nr.8
Să se creeze o tabelă cu structura: Nume_muncitor, Cod_atelier,Număr_piese_produse,
Salariu şi să se introducă 8 articole (un articol –un muncitor, codul unui atelier este un număr
de la 1 la 9 pot fi şi mai mulţi muncitori într-un atelier şi toţi au nume diferite ).
Cerinţe
a)Toţi muncitorii ce au produs un număr de piese mai mare cu cel puţin 10 % decât o
valoare introdusă de la tastatură vor avea salariul majorat cu 10 %. Să se afişeze
salariile acestora (după mărirea salariilor) şi codul atelierelor din care făceau parte.
b) Să se afişeze suma totală necesară măririi salariilor de la cerinţa a) şi codul
atelierului cu cei mai mulţi muncitori cu salarii mărite.
Cerinţa a)
Modificarea salariilor
UPDATE Muncitori
SET salariu=salariu*1.10
WHERE numar_piese_produse>1.10*:x
Pentru afișarea muncitorilor cărora li s-a mărit salariul
SELECT nume_muncitor, cod_atelier, salariu
FROM Muncitori
WHERE numar_piese_produse>1.10*:x
Cerinţa b)
Calculul sumei necesare maririi
SELECT SUM(salariu-salariu/1.10) "Suma necesara maririi"
FROM Muncitori
WHERE numar_piese_produse>1.10*:x
Subiectul nr.9
Să se creeze o tabelă cu structura: Nume_muncitor, Cod_atelier,Număr_piese_produse,
Vărstă şi să se introducă 8 articole (un articol –un muncitor, codul unui atelier este un număr
de la 1 la 9 pot fi şi mai mulţi muncitori într-un atelier şi toţi au nume diferite ).Cerinţe
a).Pentru a putea lucra în străinătate, un muncitor trebuie să aibă o vârstă cel mult
egală cu o valoare introdusă de la tastatură şi să producă un număr de piese cel
puţin egal cu o valoare introdusă de la tastatură.Să se afişeze numele celor ce
îndeplinesc ambele condiţii şi atelierele în care lucrează aceştia.
b) Să se afişeze numărul mediu de piese produse de toţi cei selectaţi la prima
cerinţă.
Cerinţa a)
SELECT * FROM Muncitori
WHERE varsta<=:varsta and numar_piese_produse>=:nr_piese
Cerinţa b)
SELECT AVG(numar_piese_produse) "Numar mediu piese"
FROM Muncitori
WHERE varsta<=:varsta and numar_piese_produse>=:nr_piese
Subiectul nr.10
Să se creeze o tabelă cu structura: Nume_muncitor, Cod_atelier,Număr_piese_produse,
Număr copii minori şi să se introducă 8 articole (un articol –un muncitor, codul unui atelier
este un număr de la 1 la 9 pot fi şi mai mulţi muncitori într-un atelier şi toţi au nume diferite
).Cerinţe
a)Să se afişeze o listă cu muncitorii din fiecare atelier (codul atelierului şi apoi toţi
muncitorii din acel atelier şi la fel pentru fiecare atelier).
b)Să se afişeze numărul tuturor copiilor minori ai tutror muncitorilor din tabelă.
Cerinţa a)
SELECT cod_atelier, nume_muncitor FROM Muncitori
ORDER BY cod_atelier, nume_muncitor
Cerinţa b)
SELECT SUM(numar_copii_minori) "Numar total copii minori"
FROM Muncitori
Subiectul nr.11
Să se creeze o tabelă cu structura: Nume_muncitor, Cod_atelier,Număr_piese_produse,
şi să se introducă 8 articole (un articol –un muncitor, codul unui atelier este un număr de la 1
la 9 pot fi şi mai mulţi muncitori într-un atelier şi toţi au nume diferite ).Cerinţe
a)Să se afişeze numărul mediu de piese produse de un muncitor (număr total de
piese / număr muncitori).
b)Să se afişeze numărul mediu de piese produse de un atelier )număr total
piese / număr ateliere)
Subiectul nr.12
Să se creeze o tabelă cu structura: Nume_muncitor, Cod_atelier,Număr_piese_produse,
şi să se introducă 8 articole (un articol –un muncitor, codul unui atelier este un număr de la 1
la 9 pot fi şi mai mulţi muncitori într-un atelier şi toţi au nume diferite ).Cerinţe:
a) Să se şteargă articolele referitoare la muncitorii ce produc un număr de piese mai
mic decât un număr introdus de la tastatură şi să se depună într-o tabelă nouă (cu
structura Nume_muncitor, , Număr_piese), apoi să se sorteze alfabetic noua
tabelă după câmpul Nume_ muncitor şi să se afişeze sortată.
b) Să se afişeze tabela iniţială, după transferul precizat la cerinţa a ).
Cerinţa a)
Crearea structurii tabelului Muncitori2 în care se vor copia muncitorii ce au realizat un număr de piese
mai mic decât o valoare introdusă de la tastatură.
CREATE TABLE Muncitori2 (nume_muncitor VARCHAR(50) UNIQUE, numar_piese_produse
NUMBER(5))
Copierea muncitorilor în al doilea tabel
INSERT INTO Muncitori2
SELECT nume_muncitor, numar_piese_produse
FROM Muncitori
WHERE numar_piese_produse<:X
Ştergerea înregistrărilor copiate din tabelul iniţial
DELETE FROM Muncitori
WHERE numar_piese_produse<:X
Afişarea muncitorilor din tabela nou creată sortată după numele muncitorului
SELECT * FROM Muncitori2
ORDER BY nume_muncitor
Cerinţa b)
SELECT * FROM Muncitori
Subiectul nr.13
Să se creeze o tabelă cu structura:Nume_muncitor, Cod_atelier, Număr_piese_produse,
şi să se introducă 8 articole (un articol –un muncitor, codul unui atelier este un număr de la 1
la 9 pot fi şi mai mulţi muncitori într-un atelier şi toţi au nume diferite ).Cerinţe:
a) Se citeşte de la tastatură un cod de atelier existent în tabelă.În acel atelier se
angajează un muncitor nou pentru care se introduc date de la tastatură. Câmpul
Număr_ piese se va completa cu valoarea 0. Să se afişeze apoi numărul minim
necesar de piese pe care noul venit trebuie să le producă astfel încât producţia medie
a acelui atelier să nu scadă.
b) Se citeşte de la tastatură un nume de muncitor şi un cod de atelier. Dacă muncitorul
figurează în acel atelier din tabelă, atunci să i se schimbe codul atelierului său cu un
alt cod introdus (existent în tabelă ) de la tastatură (se mută de la un atelier la altul).
Dacă acel muncitor nu figurează în atelierul dat , atunci se va afisa un mesaj.
Cerinţa a)
Adăugarea muncitorului
INSERT INTO Muncitori
VALUES (:nume, :atelier, 0)
Calculul valorii minime a numărului de piese
SELECT CEIL(AVG(numar_piese_produse))
FROM Muncitori
WHERE cod_atelier=: atelier AND numar_piese_produse>0
Cerinţa b)
UPDATE Muncitori
SET cod_atelier=:atelier_nou
WHERE (UPPER(nume_muncitor)=UPPER(:nume)) AND (cod_atelier=:atelier)
Subiectul nr.14
Să se creeze o tabelă cu structura: Nume_muncitor, Cod_atelier,Număr_piese_produse,
şi să se introducă 8 articole (un articol – un muncitor, codul unui atelier este un număr de la 1
la 9 pot fi şi mai mulţi muncitori într-un atelier şi toţi au nume diferite ).Cerinţe:
a) Muncitorul /muncitorii cu număr maxim de piese produse se va / vor transfera la alt
loc de muncă.Să se afişeze in ordine alfabetică numele celor transferaţi.
b) Să se afişeze numărul mediu de piese produse de către cei rămaţi în vechile
ateliere.
Cerinţa a)
Mutarea la un alt loc de muncă a muncitorilor cu număr maxim de piese e realizată prin completarea
cu NULL a valorilor din coloana COD_ATELIER corespunzătoare acestora.
UPDATE Muncitori
SET cod_atelier=NULL
WHERE numar_piese_produse=(SELECT MAX(numar_piese_produse) FROM Muncitori)
Cerinţa b)
SELECT AVG(numar_piese_produse) "Nr. mediu piese pt.cei ramasi"
FROM Muncitori
WHERE cod_atelier IS NOT NULL
Subiectul nr.15
Să se creeze o tabelă cu structura : Cod_material, Pret_unitar, Cantitate, Stoc_necesar şi să
se introducă 8 articole (un articol - un produs dintr-un depozit;cantitate – existentul din depozit;
stoc_necesar = cantitatea minima ncesara in depozit; valoarea unui produs = cantitatea * pret
unitar).Cerinte:
a) Să se afişzeze codurile produselor pentru care cantitatea existentă este mai mică
decât stocul necesar . Pentru fiecare dintre aceste produse se va afişa ce cantitate
trebuie adaugată pentru a realiza o cantitate egală cu acel stoc_necesar.
b) Să se afişeze codurile produselor ce au cantitate mai mare cu cel puţin 20 % decât
stoc_ necesar, în ordinea codurilor.
Subiectul nr.16
Să se creeze o tabelă cu structura Cod materia, Pret unitar, Cantitate, Stoc necesar si să se
introducă 8 articole (un articol- un produs dintr-un depozit, cantitate= existentul depozit ,
valoarea unui produs = cantitatea *preţ-unitar ). Cerinţe:
a)Se citesc de la tastatură un cod de material şi o cantitate . Dacă acel produs este în
tabelă şi dacă se poate livra (cantitatea din depozit este cel puţin egală cu cea citită),
atunci să se afişeze cantitatea rămasă în depozit pentru livrare. Dacă acea cantitate
rămasă în depozit este mai mică decât stocul necesar, se va afişa un mesaj. Dacă nu
există acel produs sau nu e în cantitatea dorită, se va afişa un alt mesaj.
b)Se introduc de la tastatură un cod de material ( c) şi o cantitate (k) .Dacă acel cod
corespunde unui produs existent , atunci se va mări pentru el cantitatea existentă în
depozit cu valoarea k. Dacă nu există, atunci se va adăuga un nou articol avand
câmpurile preţ_unitar şi stoc _necesar introduse de la tastatură.
Notă! Deoarece rezolvarea cerinţelor folosind Oracle ar necesita cunoştinţe de PL/SQL, limbaj ce nu
este inclus în programa de la neintensiv, se vor scrie comenzi SQL ce sunt aproximativ echivalente.
Cerinţa a)
SELECT cod_material, cantitate "Cantitate initiala",
DECODE(SIGN(cantitate-:cantitate_livrata),1, 'Se poate livra', -1,'Nu se poate livra') "Stare
livrare",
DECODE(SIGN(cantitate-:cantitate_livrata),1, cantitate-:cantitate_livrata, -1,cantitate)
"Cantitate ramasa", DECODE(SIGN(cantitate-:cantitate_livrata-stoc_necesar), -1, 'Necesita
aprovizionare' , 1,'Stoc suficient')
"Situatie stoc in urma livrarii", stoc_necesar
FROM Stoc
where cod_material=:cod_mat
Cerinţa b)
Modificarea stocului pentru materialul citit
UPDATE Stoc
SET CANTITATE=CANTITATE+:cant_adaugata
where cod_material=:cod_mat
Afișarea materialului căruia i s-a modificat stocul
SELECT * FROM Stoc
WHERE cod_material=:cod_mat
Dacă interogarea anterioară nu afişează nici un material, se va scrie comanda de mai jos pentru
adăugarea materialului dorit în tabela Stoc.
INSERT INTO Stoc
VALUES (:cod_mat, :pret, :cantitate,:stoc_necesar)
Subiectul nr.17
Să se creeze o tabelă cu structura: Nume _autor, Titlu, Nr_Exemplare_imprumutate,
Data_imprumut şi să se introducă cel puţin 8 articole. Cerinte
a) Să se afişeze numele autorului cu cele mai multe titluri.
b) Să se afişeze numele autorului cu cele mai puţine carţi solicitate pentru împrumut în
luna curentă.
Subiectul nr.18
Să se creeze o tabelă cu structura: Nume_angajat, Salariu, Numar _copii_minori,
Numar_zile_ concediu_medical şi să se introducă cel puţin 8 articole. Un articol reprezintă
un angajat din întreprindere.Cerinţe:
a).Să se afişeze numele angajatului cu cele mai multe zile de concediu medical.
b).Să se afişeze salariul mediu al celor ce au avut concediu medical şi care au cel
puţin un copil minor.
Crearea structurii tabelului
CREATE TABLE ANG_CONCEDII (nume_angajat VARCHAR2(50), salariu NUMBER(6,2),
numar_copii_minori NUMBER(1), numar_zile_concediu_medical NUMBER(3))
Inserarea datelor in tabel
INSERT INTO ANG_CONCEDII VALUES ('Popescu Darius', 1500, 2,0)
INSERT INTO ANG_CONCEDII VALUES ('Bujor Adelina', 1200, 0,15)
INSERT INTO ANG_CONCEDII VALUES ('Dinca Alexandru', 800, 1,30)
INSERT INTO ANG_CONCEDII VALUES ('Eftimie Florin', 750, 2,10)
INSERT INTO ANG_CONCEDII VALUES ('Dumitrescu Ion', 853, 0,25)
INSERT INTO ANG_CONCEDII VALUES ('Tudor Vasile', 1254, 2,0)
INSERT INTO ANG_CONCEDII VALUES ('Albu Diana', 987, 1,45)
INSERT INTO ANG_CONCEDII VALUES ('Dumitrascu Viorel', 1350, 2,28)
Cerinţa a)
SELECT nume_angajat, numar_zile_concediu_medical
FROM ang_concedii
WHERE numar_zile_concediu_medical=
(SELECT MAX(numar_zile_concediu_medical)FROM ang_concedii)
Cerinţa b)
SELECT AVG(salariu) "Salariu mediu"
FROM ang_concedii
WHERE numar_zile_concediu_medical>0 AND numar_copii_minori>=1
Subiectul nr.19
Să se creeze o tabelă cu structura: Nume_medic, Nume _pacient, Diagnostic,
Data_consultului şi să se introducă cel puţin 8 articole. Un articol reprezintă un pacient
dintr-o policlinică (un consult - un articol). Cerinţe
a) Să se afişeze numărul pacienţilor consultaţi în luna curentă de către un medic al cărui
nume se introduce de la tastatură.
b) Să se afişeze diagnosticul cel mai frecvent pus în luna curentă.
Cerinţa a)
SELECT COUNT(*)
FROM consultatii
WHERE UPPER(nume_medic)=UPPER(:medic) AND
ABS(MONTHS_BETWEEN(LAST_DAY(CURRENT_DATE),LAST_DAY(data_consultului)))<1
Cerinţa b)
SELECT diagnostic
FROM consultatii
WHERE ABS(MONTHS_BETWEEN(LAST_DAY(CURRENT_DATE),LAST_DAY(data_consultului)))<1
GROUP BY diagnostic
HAVING COUNT(*) =
(SELECT MAX(COUNT(*))
FROM consultatii
WHERE
ABS(MONTHS_BETWEEN(LAST_DAY(CURRENT_DATE),LAST_DAY(data_consultului)))<1
GROUP BY diagnostic)
Subiectul nr.20
Să se creeze o tabelă cu structura: Nume _elev, Clasa, Promovat, în care să se introducă
cel puţin 8 articole. Un articol reprezintă un elev dintr-o clasă a unei şcoli. Cerinte
a)Să se afişeze clasa cu cel mai mare procent de promovabilitate.
b)Să se afişeze numele elevilor nepromovaţi dintr-o clasă introdusă de la tastatură.
Subiectul nr.21
Să se creeze o tabelă cu următoarea structură : Cod_aliment, Den_aliment, Calorii, în
care să sec introducă minimum 8 articole . Cerinţe
a) Să se adauge la sfârşitul tabelei 3 înregistrări noi.
b) Să se afişeze o listă având câmpurile : den_aliment,calorii in ordinea
descrescatoare a caloriilor.
Subiectul nr.22
Să se creeze , la nivel de întreprindere , o tabelă cu următoarea structură : Nume,
Cod_ pers, Adresa, Salariu, în care să se introducă minimum 8 articole. Cerinţe
a) Să se modifice adresa angajatului al cărui nume a fost introdus de la tastatură.
b) Să se afişeze salariu mediu pe întreprindere.
Cerinţa a)
UPDATE angajati
SET adresa=:Adresa_noua
WHERE UPPER(nume)=UPPER(:Nume_angajat)
Cerinţa b)
SELECT AVG(salariu)
FROM angajati
Subiectul nr.23
Să se creezeo tabelă cu rezultatele sportivilor participanti la Campionatul European de Fotbal
în care să se introducă minimum 8 articole. Structura tabelei este următoarea :Nume
_sportiv, Tara, Goluri _ marcate. Cerinţe:
a) Să se afişeze numărul tărilor participante.
b) Să se afişeze numele sportivilor, numărul de goluri marcate ale unei tări introduse
de la tastatură
Subiectul nr.24
Un depozit aprovizionează cu produse mai multe magazine. Să se creeze o tabelă cu
următoarea structură: Cod_produs, Data_ livrare, Pret_ unitar, Cantitate, Unitate_masura,
Cod_magazin, în care să se introducă minimum 8 articole. Cerinţe:
a)Pentru o data livrare Y (introdusă de la tastatură) să se afişeze toate codurile
magazinelor şi produsele cu care au fost aprovizionate.
b) Să se determine produsul cel mai solicitat în data_livrare X (introdusă de la
tastatură) şi să se afişeze valoarea totală obţinută prin vânzarea lui.
Cerinţa a)
SELECT cod_magazin, cod_produs
FROM livrari
WHERE data_livrare=:Data_livrarii
ORDER BY 1,2
Cerinţa b)
SELECT cod_produs, COUNT(*)"Numar solicitari", SUM(pret_unitar*cantitate) "Valoarea
incasata"
FROM livrari
WHERE data_livrare=:Data_livrarii
GROUP BY cod_produs
HAVING COUNT(*)= (SELECT MAX(COUNT(*))FROM livrari
WHERE data_livrare=:Data_livrarii
GROUP BY cod_produs)
Subiectul nr.25
Un magazin se aprovizionează cu produse de la mai multe depozite. Creaţi tabela cu
următoarea structură:Cod_ produs, Cantitate,Pret_unitar, Unitate_masura,
Cod_depozit, Data_aprovizionare, în care să introduceţi minimum 8 articole
.Cerinţe:
a) Pentru un produs dat, afişaţi cantitatea cu care s-a aprovizionat magazinul în luna X
(introdusă de la tastatură).
b) Afişaţi valoarea totală a mărfurilor transferate de la un depozit cu codul Z (introdus de
la tastatură)
Notă
Deşi rezolvările au fost implementate efectiv în Oracle, iar comenzile scrise par a returna
rezultatele aşteptate, este posibil ca, datorită volumului mare de muncă depus şi timpului limitat avut
la dispoziţie, să se fi strecurat erori de sintaxă sau chiar erori logice. Rog colegii să-mi sesizeze aceste
erori pentru a fi corectate şi pentru a putea republica documentul într-o formă mai bună.