[MYSQL] Demande d'aide sur un SELECT

Demande d'aide sur un SELECT [MYSQL] - SQL/NoSQL - Programmation

Marsh Posté le 24-09-2005 à 15:00:52    

Bonjour à tous :hello:  
 
Jusqu'à maintenant je me suis débrouillé seul en farfouillant à droite et à gauche et en bidouillant pour faire ce que je voulais mais là j'avoue que je cale :( J'espère que vous pourrait de donner un coup de main.
 
Je vous expose mon problème: j'ai une liste de salle de réunion et pour chaque salle les heures de début et de fin pour des réunions planifiées. Je souhaite extraire pour chaque salle l'heure de fin de la derniere réunion et classer le résultat par heure de fin de réunion ascendant et cela pour un jour donné. Je vais mettre un exemple plus bas pour que se soit bien clair mais d'abord voici la structure simplifiée des tables:
 

Citation :

Structure de la table salle:
id_salle (tinyint)
nom_salle (varchar)
 
Structure de la table reunion:
id_reunion (mediumint)
id_salle (tinyint)
heure_debut (timestamp)
heure_fin (timestamp)


 

Citation :

Contenu de la table salle:
1, salle1
2, salle2
 
Contenu de la table reunion:
1, 1, 10000, 13600
2, 2, 15000, 18600
3, 1, 20000, 23600
(les timestamps j'ai mis n'importe koi, c'est juste pour l'exemple)


 
Donc pour cette exemple je voudrais sortir les données suivantes:
2, 2, 15000, 18600 <- en 1er car c'est la fin de la derniere reunion pour la salle2 et que cette reunion se finit avant celle de la salle1
3, 1, 20000, 23600 <- en 2eme car c'est la fin de la derniere reunion pour la salle1
 
Voila j'espere que j'ai assez détaillé et que c'est possible de la faire. Merci pour votre aide. :)  
 
PS: pour simplifié je ne tient pas compte du jour.

Reply

Marsh Posté le 24-09-2005 à 15:00:52   

Reply

Marsh Posté le 24-09-2005 à 21:53:12    

Essaye ça pour voir :
 

Code :
  1. SELECT s.salle_id, MAX(r.heure_fin)
  2. FROM salle s, reunion r
  3. WHERE s.salle_id = r.salle_id
  4. GROUP BY s.salle_id
  5. ORDER BY MAX(r.heure_fin);


 
Quelle version de mySql ?

Reply

Marsh Posté le 25-09-2005 à 00:34:35    

Ah bien vu le coup du GROUP  :)  
 
Je suis en version 4.1 sur le server de développement mais mon hébergeur est tjs en version 3.23 :(  
 
Ta requete ne passe pas en v3.23, elle n'aime pas le MAX dans la partie ORDER BY :cry: .
 
Si j'enlève ce MAX il me retourne ce résultat:
1, 1, 10000, 13600  
2, 2, 15000, 18600
 
En fait il sort l'heure_fin minimal pour chaque planete et pas la valeur max. Il manque pas grand chose pour ca marche :(

Reply

Marsh Posté le 25-09-2005 à 10:49:53    

Essaye avec un alias :
 

Code :
  1. SELECT s.salle_id, MAX(r.heure_fin) as max_heure_fin
  2. FROM salle s, reunion r
  3. WHERE s.salle_id = r.salle_id
  4. GROUP BY s.salle_id
  5. ORDER BY max_heure_fin;

Reply

Marsh Posté le 25-09-2005 à 11:32:08    

Excellent ca marche :)  
 
Merci beaucoup pour ton aide Beegee :jap:

Reply

Marsh Posté le 25-09-2005 à 14:48:03    

Y a pas de quoi :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed