Sunteți pe pagina 1din 3

Cerinte interogari (3)

1. Sa se creeze un query denumit StudModule cu numele, prenumele studentilor, modulul la care


sunt inscrisi si valoarea totala de plata pentru fiecare student.
2. Sa se calculeze cate module se gasesc in StudModule.(Count() & Count (Distinct..) )
3. Lista alfabetica a studentilor inscrisi la modulul „Info” si totalul general de plata pentru acest
modul. Intrucât se doreşte utilizarea unei funcţii de grupare împreună cu o listă de selecţie ce
conţine înregistrări negrupate se va utiliza clauza COMPUTE.
4. Calculaţi taxa minimă şi taxa maximă pe fiecare modul unde sunt mai mult de trei studenti
inscrisi.
5. Lista studentilor ordonaţi alfabetic pe module si valoarea medie de plată pe fiecare modul.
1. Sa se creeze un query denumit StudModule cu numele, prenumele studentilor, modulul la care
sunt inscrisi si valoarea totala de plata pentru fiecare student.
SELECT Cursanti.CNPCursant, Cursanti.NumeCursant, Cursanti.PrenumeCursant, Module.NumeModul,
Module.TaxaModul * (100 - CursantModul.ReducereProcentuala) AS Expr1
FROM Cursanti INNER JOIN CursantModul ON Cursanti.CNPCursant = CursantModul.CNPCursant INNER JOIN
Module ON CursantModul.CodModul = Module.CodModul
ORDER BY Cursanti.CNPCursant
COMPUTE sum(Module.TaxaModul * (100 - CursantModul.ReducereProcentuala)) by Cursanti.CNPCursant

2. Sa se calculeze cate module se gasesc in StudModule.(Count() & Count (Distinct..) )


SELECT COUNT(CodModul) As EX1,
COUNT(DISTINCT CodModul) AS Ex2,
COUNT(*) AS Ex3
FROM StudModule

*Observaţii:
Clauza Group By nu este necesară întrucât funcţia Count se aplică întregului domeniu, iar în instrucţia SELECT nu figurează şi
alte câmpuri inafara funcţiilor.
Cele trei funncţii Co CodModul unt returnează rezultate diferit deoarece al doilea exemplu utilizează opţiunea Distinct iar al 3-
lea va număra şi valoarea Null prezentă la unul dintre anngajaţi pe câmpul CodModul.
3. Lista alfabetica a studentilor inscrisi la modulul „Info” si totalul general de plata pentru acest
modul. Intrucât se doreşte utilizarea unei funcţii de grupare împreună cu o listă de selecţie ce
conţine înregistrări negrupate se va utiliza clauza COMPUTE.
SELECT [First name], Surname, TotalPayment
FROM STUDMOD
WHERE [Module name]='Info'
ORDER BY Surname
COMPUTE SUM(TotalPayment) BY Surname

4. Calculaţi taxa minimă şi taxa maximă pe fiecare modul unde sunt mai mult de trei studenti
inscrisi.
SELECT [Module name], MIN(TotalPayment) as SalariuMinim, MAX(TotalPayment) as SalariuMaxim
FROM STUDMOD
GROUP BY [Module name]
HAVING COUNT(Surname) > 3

5. Lista studentilor ordonaţi alfabetic pe module si valoarea medie de plată pe fiecare modul.
SELECT [First name], Surname, TotalPayment, [Module name]
FROM STUDMOD
ORDER BY [Module name], Surname
COMPUTE AVG(TotalPayment) by [Module name]