Requete SQL

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

  • Votes
  • Date
  • Date décroissante
  1. 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. Bonjour,

      Peut-être que cela pourrait aider :
      Les fonctions d'agrégats se testent dans une clause "having".