1- Les Cafés qui servent une Boisson Apprécier par ‘Ahmed’.
SELECT Café FROM Apprécier A, Servir S WHERE S.Boisson = A.Boisson AND Client ='Ahmed';
2- Les Clients qui vont dans les mêmes Cafés que Ahmed.
SELECT Fréquenter.Client FROM Fréquenter F1, Fréquenter F2 WHERE F1.Café = F2.Café AND F2.Client = 'Ahmed';
3- Les Clients qui fréquentent au moins un Café où l’on sert une Boisson qu’ils aiment.
SELECT Fréquenter.Client FROM Fréquenter F, Apprécier A, Servir S WHERE A.Boisson = S.Boisson AND S.Café = F.Café AND A.Client = F.Client ;
4- Les Clients qui ne fréquentent aucun Café où l’ont sert une Boisson qu’ils aiment.
SELECT Client FROM Fréquenter F WHERE Client NOT IN (SELECT Client FROM Apprécier A, Servir S WHERE S.Café = F.Café AND S.Boisson = A.Boisson );
5- Les Clients qui fréquentent tous les Cafés.
SELECT Client FROM Fréquenter WHERE Client NOT IN (SELECT F1.Client FROM Fréquenter F1, Fréquenter F2 WHERE F1.Client NOT IN (SELECT Client FROM Fréquenter WHERE Café=F2.Café) );
6- Les Clients qui fréquentent tous les Cafés qui servent au moins une Boisson qu’ils aiment.
SELECT Client FROM Fréquenter F WHERE Client NOT IN (SELECT Apprécier.Client FROM Servir S, Apprécier A WHERE S.Boisson=A.Boisson AND A.Client NOT IN (SELECT Client FROM Fréquenter WHERE Café=S.Café) );
7- Les Clients qui ne fréquentent que les Cafés qui servent une Boisson qu’ils aiment.
SELECT Client FROM Fréquenter WHERE Client NOT IN (SELECT Client FROM Fréquenter F WHERE Client NOT IN (SELECT Client FROM Servir S, Apprécier A WHERE S.Café = F.Café And S.Boisson = A.Boisson) );
8- Donner pour chaque Client, le nombre de Cafés servant une Boisson qu’ils aiment.
SELECT Client, COUNT(DISTINCT Café) FROM Servir S, Apprécier A WHERE S.Boisson = A.Boisson GROUP BY Client
9- Les Clients qui fréquentent au moins 2 Cafés où l’on sert une Boisson qu’ils aiment.
SELECT Client FROM Servir S, Apprécier A, Fréquenter F WHERE S.Boisson = A.Boisson AND A.Client = F.Client AND F.Café = S.Café GROUP BY Client HAVING COUNT(Café)>2;