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.
Publicité
Posté le 24-09-2005 à 15:00:52
Beegee
Posté le 24-09-2005 à 21:53:12
Essaye ça pour voir :
Code :
SELECT s.salle_id, MAX(r.heure_fin)
FROM salle s, reunion r
WHERE s.salle_id = r.salle_id
GROUP BY s.salle_id
ORDER BY MAX(r.heure_fin);
Quelle version de mySql ?
IvanleFou
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 .
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
Beegee
Posté le 25-09-2005 à 10:49:53
Essaye avec un alias :
Code :
SELECT s.salle_id, MAX(r.heure_fin) as max_heure_fin