Sunteți pe pagina 1din 5

Interogari

Greseli frecvente

Afisati numele angajatilor care lucreaza 23 ore/saptamana la un proiect derulat in cadrul companiei CORECT SELECT A.Nume FROM Angajati A WHERE AngajatID IN (SELECT AngajatID from AngajatiProiecte AP WHERE AP.NrOreSaptamana = 23) INCORECT SELECT A.Nume FROM Angajati A WHERE AngajatID = (SELECT AngajatID from AngajatiProiecte AP WHERE AP.NrOreSaptamana = 23
Msg 512, Level 16, State 1, Line 1 Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.

Afisati numele si prenumele angajatilor care lucreaza la proiecte ce sunt coordonate de departamentul din care fac parte

SELECT A.Nume, A.Prenume, P.NumeProiect FROM Angajati A, Proiecte P, AngajatiProiecte AP WHERE ((A.AngajatID = AP.AngajatID) AND (P.DepartamentID = A.DepartamentID) AND (AP.ProiectID = P.ProiectID))

SAU
SELECT A.Nume, A.Prenume, P.NumeProiect FROM Angajati A INNER JOIN Proiecte P ON (P.DepartamentID = A.DepartamentID) INNER JOIN AngajatiProiecte AP ON ((A.AngajatID = AP.AngajatID) AND (AP.ProiectID = P.ProiectID))

Afisati numele si prenumele angajatilor care lucreaza la toate proiectele coordonate de departamentul din care fac parte.

select a.nume, a.prenume CORECT from angajati a where (select count(distinct p.proiectid) from angajatiproiecte ap, proiecte p where a.angajatid = ap.angajatid and p.departamentid = a.departamentid and p.proiectid = ap.proiectid) = (select count(distinct p2.proiectid) from proiecte p2 where a.departamentid = p2.departamentid) group by a.angajatid, a.nume, a.prenume

Afisati numele si prenumele angajatilor care lucreaza la toate proiectele coordonate de departamentul 1.

SELECT a.Nume, a.Prenume GRESIT FROM Angajati a, AngajatiProiecte ap WHERE a.AngajatID = ap.AngajatID and ap.ProiectID IN ALL IN ALL nu (SELECT p.ProiectID exista! FROM Proiecte p WHERE p.DepartamentID = 2)

S-ar putea să vă placă și