Requête répond OUI ou NON

Résolu/Fermé
Étienne9 Messages postés 1022 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 10 mai 2015 - Modifié par Étienne9 le 19/12/2013 à 18:48
Doctor C Messages postés 627 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 19 février 2016 - 23 déc. 2013 à 14:39
Bonjour à tous,

J'ai deux tables, Mannequin et Tenue.
Dans Mannequin il y a sa taille qu'il peut porter.
Dans Tenue il y a la taille de la tenue.

Je veux que ça me dise OUI ou que ça me dise NON selon si le mannequin 3 peut porter la tenue 2.

Voici ma requête, apparemment le résultat est bon mais ça m'affiche deux fois donc j'ai dû mal faire ma requête :

Select case when

(Select Taille_Vetement from Mannequin m2 where NumMan = 3)
=
(Select Taille_Tenue from Tenue t2 where t2.NumTenue = 2)

then 'Oui' else 'Non' end

from Mannequin m3, Tenue t3 where m3.NumMan = t3.NumMan and t3.NumMan = 2;

Merci beaucoup d'avance.

2 réponses

Doctor C Messages postés 627 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 19 février 2016 398
Modifié par Doctor C le 20/12/2013 à 17:04
Tu effectues un peu de travail superflu en faisant 3 requêtes SELECT.

Je trouve que la requête suivante est toutefois beaucoup plus simple:

SELECT 
	CASE
		when m.Taille_Vetement = t.Taille_Tenue
	THEN 
		'Oui' 
	ELSE 
		'Non'
	END AS fit
FROM Mannequin m, Tenue t
WHERE	m.NumMan = 3 AND
	t.NumTenue = 2
;


Bonne journée!


Echo "Lima Mike Alfa";
0
Étienne9 Messages postés 1022 Date d'inscription mardi 1 mars 2011 Statut Membre Dernière intervention 10 mai 2015 49
21 déc. 2013 à 09:52
Bonjour,

Merci beaucoup.
Si je comprends bien, le AS (c'est la seule chose pas trop compris) c'est un alias, le nom de la colonne que vous donner ?

Cordialement et merci encore.
0
Doctor C Messages postés 627 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 19 février 2016 398
23 déc. 2013 à 14:39
En effet.

C'est pour choisir un nom à ta colonne au lieu de laisser SQL écrire ce qu'il veut.

Tu utilisais d'ailleur implicitement le AS sans t'en rendre compte dans la ligne suivante:

FROM Tenue t2

qui est une manière courte d'écrire:

FROM Tenue AS t2

Bonne chance!
0