Exercice SQL corrigé exprimer en SQL des requêtes

9-   Donnez les noms des fournisseurs qui approvisionnent une usine de Paris ou de Créteil en produit rouge

SELECT NomF FROM PUF, P, F, U WHERE
    Couleur=‘Rouge’ AND PUF.Np=P.Np AND PUF.Nf=F.Nf AND
    PUF.Nu=U.Nu AND (U.Ville IN (‘Paris’,’Créteil’)
       Ou bien SELECT NomF FROM F WHERE Nf IN (SELECT
      Nf FROM PUF WHERE Np IN (SELECT Np FROM P
      WHERE Couleur=‘Rouge’) AND Nu IN (SELECT Nu FROM
      U WHERE Ville IN (‘Paris’, ‘Créteil’))

10- Donnez les numéros des produits livrés à une usine par une fournisseur de la même ville

SELECT DISTINCT Np FROM PUF, F, U WHERE PUF.Nf=F.Nf
    AND PUF.Nu=U.Nu AND U.Ville=F.Ville

11- Donnez les numéros des produits livrés à une usine de Paris par un fournisseur de Paris

SELECT DISTINCT Np FROM PUF, F, U WHERE PUF.Nf=F.Nf
    AND PUF.Nu=U.Nu AND U.Ville=F.Ville AND U.Ville=‘Paris’
       Ou bien SELECT DISTINCT Np FROM PUF WHERE Nf IN
      (SELECT Nf FROM F WHERE Ville=‘Paris’) AND Nu IN
      (SELECT Nu FROM U WHERE Ville=‘Paris’)

12- Donnez les numéros des usines qui ont au moins un fournisseur qui n’est pas de la même ville

SELECT DISTINCT PUF.Nu FROM PUF, F, U WHERE
    PUF.Nf=F.Nf AND PUF.Nu=U.Nu AND U.VilleF.ville
       Ou bien SELECT DISTINCT Nu FROM PUF WHERE
      Nf=ANY(SELECT Nf FROM F, U WHERE PUF.Nf=F.Nf AND
      PUF.Nu=U.Nu AND F.VilleU.Ville)

13- Donnez les numéros des fournisseurs qui approvisionnent à la fois des usines de numéros 2 et 3

SELECT DISTINCT First.Nf FROM PUF First, PUF Second
    WHERE First.Nf=Second.Nf AND First.Nu=1 AND Second.Nu=2
      Ou bien SELECT DISTINCT Nf FROM PUF WHERE Nf IN
      (SELECT Nf FROM PUF WHERE Nu=1) AND Nu=2

14- Donnez les numéros des usines qui utilisent au moins un produit disponible chez le fournisseur de numéro 3 (c’est-à-dire un produit que le fournisseur livre mais pas nécessairement à cette usine)

SELECT DISTINCT Nu FROM PUF WHERE Np IN (SELECT
    Np FROM PUF WHERE Nf=3)

15- Donnez le numéro du produit le plus léger (les numéros si plusieurs produits ont ce même poids)

SELECT Np FROM P WHERE Poids IN (SELECT MIN(Poids) FROM P)
       Ou bien 
SELECT Np FROM P p1 WHERE NOT EXISTS
      (SELECT * FROM P WHERE P1.Poids>Poids)

16- Donnez le numéro des usines qui ne reçoivent aucun produit rouge d’un fournisseur parisien

SELECT Nu FROM U WHERE Nu NOT IN (SELECT Nu FROM
    PUF, F, P WHERE PUF.Np=P.Np AND PUF.Nf=F.Nf AND
    Couleur=‘Rouge’ AND Ville=‘Paris’)

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *