Documente noi - cercetari, esee, comentariu, compunere, document
Documente categorii

Baze de date I - Laborator - Instructiunea SELECT

Baze de date I - Laborator - Instructiunea SELECT

  1. Calculati multimea furnizorilor care nu furnizeaza verdeturi, legume-fructe sau racoritoare.

SELECT nume & ' ' & prenume AS furnizor_verdeturi

FROM persoane

WHERE idpersoana NOT In (SELECT FURNIZARI.Furnizor

FROM (TIPURI_PRODUSE INNER JOIN PRODUSE ON TIPURI_PRODUSE.IDTipProdus = PRODUSE.Tip) INNER JOIN FURNIZARI ON PRODUSE.IDProdus = FURNIZARI.Produs

WHERE (((TIPURI_PRODUSE.DenumireTip) In ('verdeturi','legume-fructe','racoritoare')));





  1. Sa se calculeze multimea furnizorilor care furnizeaza verdeturi sau legume-fructe.

SELECT nume & ' ' & prenume AS furnizor_verdeturi

FROM persoane

WHERE idpersoana In (SELECT FURNIZARI.Furnizor

FROM (TIPURI_PRODUSE INNER JOIN PRODUSE ON TIPURI_PRODUSE.IDTipProdus = PRODUSE.Tip) INNER JOIN FURNIZARI ON PRODUSE.IDProdus = FURNIZARI.Produs

WHERE (((TIPURI_PRODUSE.DenumireTip) In ('verdeturi','legume-fructe')));



  1. Sa se calculeze multimea produselor impreuna cu pretul minim oferit pentru acestea si furnizorii care ofera acest pret.

produsele si pretul lor minim: subQ3

SELECT PRODUSE.IdProdus, Min(FURNIZARI.Pret) AS MinOfPret

FROM PRODUSE INNER JOIN (PERSOANE INNER JOIN FURNIZARI ON PERSOANE.IDPersoana = FURNIZARI.Furnizor) ON PRODUSE.IDProdus = FURNIZARI.Produs

GROUP BY PRODUSE.IdProdus;


SELECT PERSOANE.Nume, PERSOANE.Prenume, PRODUSE.Denumire, subQ3.MinOfPret

FROM (PRODUSE INNER JOIN

(PERSOANE INNER JOIN FURNIZARI ON PERSOANE.IDPersoana = FURNIZARI.Furnizor) ON PRODUSE.IDProdus = FURNIZARI.Produs)

INNER JOIN subQ3 ON PRODUSE.IDProdus = subQ3.IdProdus;


  1. Sa se calculeze numarul de furnizori care furnizeaza produse sub pretul mediu de furnizare.

SELECT nume, prenume

FROM persoane

WHERE idpersoana in

(select furnizor from furnizari F  where pret < (select avg(pret) from furnizari FF where FF.produs = F.produs));


  1. Sa se calculeze multimea furnizorilor care vand produse la bax.

SELECT DISTINCT PERSOANE.Nume, PERSOANE.Prenume, UNITATI_MASURA.DenScurta



FROM UNITATI_MASURA INNER JOIN (PRODUSE INNER JOIN (PERSOANE INNER JOIN FURNIZARI ON PERSOANE.IDPersoana=FURNIZARI.Furnizor) ON PRODUSE.IDProdus=FURNIZARI.Produs) ON UNITATI_MASURA.IDUM=PRODUSE.UM

WHERE (((UNITATI_MASURA.DenScurta)='bax'));

sau: selectam mult pers care se gasesc in multimea de furnizori de prod la bax

SELECT PERSOANE.Nume, PERSOANE.Prenume FROM PERSOANE WHERE IdPersoana IN

(SELECT Furnizor FROM UNITATI_MASURA INNER JOIN (PRODUSE INNER JOIN FURNIZARI ON PRODUSE.IDProdus=FURNIZARI.Produs) ON UNITATI_MASURA.IDUM=PRODUSE.UM

WHERE UNITATI_MASURA.DenScurta='bax');

  1. Sa se calculeze numarul furnizorilor care vand produse la bax.

SELECT COUNT(*) FROM PERSOANE WHERE IdPersoana IN

(SELECT Furnizor FROM UNITATI_MASURA INNER JOIN (PRODUSE INNER JOIN FURNIZARI ON PRODUSE.IDProdus=FURNIZARI.Produs) ON UNITATI_MASURA.IDUM=PRODUSE.UM

WHERE (((UNITATI_MASURA.DenScurta)='bax'));

  1. Sa se calculeze numarul furnizorilor care vand racoritoare sau macar 3 produse diferite ambalate la bax.

SELECT Count(*) AS NrFurnizori

FROM PERSOANE

WHERE (((PERSOANE.IDPersoana) In (select furnizor from ((produse inner join furnizari  on FURNIZARI.produs=PRODUSE.idprodus)

inner join tipuri_produse on PRODUSE.tip=TIPURI_PRODUSE.idtipprodus) where denumiretip='racoritoare') Or (PERSOANE.IDPersoana) In (SELECT Furnizor FROM UNITATI_MASURA INNER JOIN (PRODUSE INNER JOIN FURNIZARI ON PRODUSE.IDProdus=FURNIZARI.Produs) ON UNITATI_MASURA.IDUM=PRODUSE.UM



WHERE ((UNITATI_MASURA.DenScurta)='bax')

GROUP BY furnizor

HAVING count(*)>=3)));


TEMA

Adaugati tabela Facturi cu campurile IdFactura, Serie, Numar, Data, Client.
(Indicatie. Client este cheie straina pe tabela PERSOANE - functie in DEA).

Adaugati tabela LiniiFacturi cu campurile IdLinieFactura, Factura, NrLinie, Produs, Cantitate, PretUnitar.
(Indicatie. Factura este cheie straina pe tabela FACTURI, Produs este cheie straina pe tabela PRODUSE - functii in DEA).


  1. Sa se calculeze multimea facturilor impreuna cu denumirile produselor de pe acestea, cantitatea, pretul, si valoarea (prêt*cantitate) acestora.
  2. Sa se calculeze numarul de produse de pe fiecare factura si valoarea fiecarei facturi. Rezultatul ar trebui sa contina campurile Numar, Serie, NumarProduse, ValoareTotala.
  3. Sa se calculeze multimea facturilor care contin macar 3 produse.
  4. Sa se calculeze multimea facturilor a caror valoare depaseste 100RON.
  5. Sa se calculeze multimea furnizorilor care sunt si clienti.
  6. Sa se calculeze multimea produselor care nu au fost vandute niciodata (Indicatie. nu exista pe nici o factura).
  7. Sa se calculeze valorile facturilor care contin racoritoare.
  8. Sa se calculeze multimea clientilor care au cumparat verdeturi de macar doua ori.