Requete SQL

sasafca Messages postés 567 Statut Membre -  
sasafca Messages postés 567 Statut Membre -
Bonjour,

j'ai un petit problème avec une requête, j'aimerai réutiliser la variable, que j'ai ici appelé 'minChambre', que je prends dans mon SELECT et l'utiliser dans le WHERE, mais je ne me rappelle plus de comment faire.

voici la requête si quelqu'un a une idée:

SELECT Min(Num_Chambre) AS minChambre FROM CHAMBRE WHERE Type_Hebergement = 'Dortoir'
AND Capacite > (SELECT SUM(Nombre_Personnes) FROM RESERVATION_HEBERGEMENT WHERE Num_Chambre = minChambre)

Merci

3 réponses

Reivax962 Messages postés 3742 Statut Membre 1 011
 
Bonjour,

Je ne pense pas que ce soit possible : ton minChambre dépend de ta clause WHERE, qui elle-même dépend de ton minChambre. C'est le serpent qui se mord la queue.

Je te suggère plutôt une requête de ce genre :
SELECT MIN(Num_Chambre) AS minChambre FROM (
	SELECT c.Num_Chambre, SUM(r.Nombre_Personnes) as nombre, c.Capacite
	FROM RESERVATION_HEBERGEMENT r
	INNER JOIN CHAMBRE c ON c.Num_Chambre = r.Num_Chambre
	WHERE c.Type_Hebergement = 'Dortoir'
	GROUP BY c.Capacite, c.Num_Chambre
) occupation
WHERE Capacite > nombre


Xavier
1
cyril1982 Messages postés 110 Statut Membre 12
 
Bonjour,

Peut-être que cela pourrait aider :
Les fonctions d'agrégats se testent dans une clause "having".
1
sasafca Messages postés 567 Statut Membre 4
 
Merci ça à l'air de fonctionner !!!
0