Sunteți pe pagina 1din 13

1.

Produsele furnizate de toi furnizorii ce furnizeaz cel puin un produs de tip 'A' vreunei secii(un astfel de produs s fie furnizat de TOI furnizorii cu proprietatea de mai sus).

1. Produsele furnizate de toi furnizorii ce furnizeaz cel puin un produs de tip 'A' vreunei secii (un astfel de produs s fie furnizat de TOI furnizorii cu proprietatea de mai sus).

E O (p1.codp, p1.den) I (produse p1) W (E1) E1 ( f.codf ) [f.codf (furnizeaza f) E2 E3)]

E2 ( p2.codp) [p2.codp (produse p2) (p2.tip = A) (p2.codp,f.codf) furnizeaza f2[f2.codp,f2.codf]]

E3 (p1.codp,f.codf) furnizeaza f3 [f3.codp,f.codf]

1. Produsele furnizate de toi furnizorii ce furnizeaz cel puin un produs de tip 'A' vreunei secii (un astfel de produs s fie furnizat de TOI furnizorii cu proprietatea de mai sus).

E O (p1.codp, p1.den) I (produse p1) W (E1) E1 ( f.codf ) [f.codf (furnizeaza f) E2 E3]

E2 ( p2.codp) [p2.codp (produse p2) (p2.tip = A) (p2.codp,f.codf) furnizeaza f2[f2.codp,f2.codf]]

E3 (p1.codp,f.codf) furnizeaza f3 [f3.codp,f.codf]

1. Produsele pentru care nu exist furnizori ce furnizeaz cel puin un produs de tip 'A' vreunei secii, care s nu le furnizeze.

E O (p1.codp, p1.den) I (produse p1) W (E1) E1 ( f.codf ) [f.codf (furnizeaza f) E2 E3] E2 ( p2.codp) [p2.codp (produse p2) (p2.tip = A) (p2.codp,f.codf) furnizeaza f2[f2.codp,f2.codf]] E3 (p1.codp,f.codf) furnizeaza f3 [f3.codp,f.codf]
SELECT p1.codp FROM produse p1 WHERE NOT EXISTS (SELECT f.codf FROM furnizeaza f WHERE EXISTS (SELECT p2.codp FROM produse p2 WHERE p2.tip = A AND (p2.codp,f.codf) IN (SELECT f2.codp, f2.codf FROM furnizeaza f2)) AND (p1.codp,f.codf) NOT IN (SELECT f3.codp,f3.cods FROM furnizeaza f3))

5. Furnizorii ce furnizeaz toate produsele de tip 'A' unei aceleiai secii de la etajul 2 ( pentru un astfel de furnizor exist o secie de la etajul 2 astfel nct in lista produselor furnizate ei de acest furnizor se afl toate produsele de tip A )

5. Furnizorii ce furnizeaz toate produsele de tip 'A' unei aceleiai secii de la etajul 2 ( pentru un astfel de furnizor exist o secie de la etajul 2 astfel nct in lista produselor furnizate ei de acest furnizor se afl toate produsele de tip A )

E O (f.codf, f.numef) I (furnizori f) W (E1) E1 ( s.cods)[s.cods (sectii s) (s.etaj=2) E2]

E2 ( p.codp)[p.codp (produse p) (p.tip = A) E3]

E3 (p.codp,s.cods, f.codf) furnizeaza fa[fa.codp,fa.cods,fa.codf]

5. Furnizorii ce furnizeaz toate produsele de tip 'A' unei aceleiai secii de la etajul 2 ( pentru un astfel de furnizor exist o secie de la etajul 2 astfel nct in lista produselor furnizate ei de acest furnizor se afl toate produsele de tip A )

E O (f.codf, f.numef) I (furnizori f) W (E1) E1 ( s.cods)[s.cods (sectii s) (s.etaj=2) E2]

E2 ( p.codp)[p.codp (produse p) (p.tip = A) E3]

E3 (p.codp,s.cods, f.codf) furnizeaza fa[fa.codp,fa.cods,fa.codf]

5. Furnizorii pentru care exist o secie la etajul 2 creia furnizorul i furnizeaz toate produsele de tip 'A'.

E O (f.codf, f.numef) I (furnizori f) W (E1) E1 ( s.cods)[s.cods (sectii s) (s.etaj=2) E2] E2 ( p.codp)[p.codp (produse p) (p.tip = A) E3] E3 (p.codp,s.cods, f.codf) furnizeaza fa[fa.codp,fa.cods,fa.codf]
SELECT f.codf, f.numef FROM furnizori f WHERE EXISTS (SELECT s.cods FROM sectii s WHERE s.etaj=2 AND NOT EXISTS (SELECT p.codp FROM produse p WHERE p.tip = A AND (p.codp,s.cods,f.codf) NOT IN (SELECT fa.codp,fa.cods,fa.codf FROM furnizeaza fa)))

15. Produsele vndute numai de seciile ce vnd cel puin dou produse din cele ce i snt furnizate.

15. Produsele vndute numai de seciile ce vnd cel puin dou produse din cele ce i sunt furnizate.

E O (p.codp) I(produse p) W(E1 E2) E1 p.codp T1 E2 p.codp T2 T1 O(v.codp)I(vanzari v)W(v.cods T3) T3 O (v1.cods) I(vanzari v1, furnizeaza f1)W(v1.cods=f1.cods v1.codp=f1.codp) G(v1.cods)H(COUNT(DISTINCT v1.codp)>=2)

T2 O (v2.codp) I(vanzari v2)W(v2.cods T3)

E O (p.codp) I(produse p) W(E1 E2) E1 p.codp T1 E2 p.codp T2 T1 O(v.codp)I(vanzari v)W(v.cods T3) T3 O (v1.cods) I(vanzari v1, furnizeaza f1)W(v1.cods=f1.cods v1.codp=f1.codp) G(v1.cods)H(COUNT(DISTINCT v1.codp)>=2) T2 O (v2.codp) I(vanzari v2)W(v2.cods T3)
SELECT DISTINCT p.codp FROM produse p WHERE p.codp IN (SELECT v.codp FROM vanzari v WHERE v.cods IN (SELECT v1.cods FROM vanzari v1, furnizeaza f1 WHERE v1.cods=f1.cods AND v1.codp=f1.codp GROUP BY v1.cods HAVING COUNT(DISTINCT v1.codp)>=2)) AND p.codp NOT IN (SELECT v2.codp FROM vanzari v2 WHERE v2.cods NOT IN (SELECT v1.cods FROM vanzari v1, furnizeaza f1 WHERE v1.cods=f1.cods AND v1.codp=f1.codp GROUP BY v1.cods HAVING COUNT(DISTINCT v1.codp)>=2))

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