Requete SQL

Fermé
sasafca Messages postés 505 Date d'inscription mercredi 27 février 2008 Statut Membre Dernière intervention 8 septembre 2017 - 26 mars 2014 à 11:47
sasafca Messages postés 505 Date d'inscription mercredi 27 février 2008 Statut Membre Dernière intervention 8 septembre 2017 - 27 mars 2014 à 10:50
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 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
26 mars 2014 à 13:31
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 Date d'inscription vendredi 7 mars 2014 Statut Membre Dernière intervention 19 septembre 2018 12
26 mars 2014 à 14:06
Bonjour,

Peut-être que cela pourrait aider :
Les fonctions d'agrégats se testent dans une clause "having".
1
sasafca Messages postés 505 Date d'inscription mercredi 27 février 2008 Statut Membre Dernière intervention 8 septembre 2017 4
27 mars 2014 à 10:50
Merci ça à l'air de fonctionner !!!
0