|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Étudiant Inscription : octobre 2011 Messages : 2 ![]() |
Bonjour,
J'ai commencé une formation en système d'information cette année et je découvre les joies du SQL! Malheureusement je bloque sur l'une d'elle !!! Voici ce que je dois gérer : Obtenir la liste des salles disponibles pour un groupe donné, à une date donnée, pour une heure donnée et une durée donnée. La réponse doit être donnée après la saisie de l'utilisateur du numéro de groupe, la date, l'heure de début et la durée. Voici mes tables : heures(heureID,intitule, nombreHeure,#heureDebut) previsions(previsionID, jour, #heureDebut, #duree, #salle, #groupe) salles(sallesID, capacite) durees(dureeID, intitule, nombreHeure) groupes(groupeID, nbetudiant) J'avoue avoir essayé quelques pistes en utilisant JOIN et en faisant des appel de même tables, mais là je suis complètement perdu !!! Merci de m'aider! Si vous avez besoin de précisions n'hésitez pas !!! |
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() |
heuredebut pointe vers quoi dans votre table heures?
dans previsions: jour est une date? Je ne suis pas sûr de tout comprendre à quoi sert la table des heures? Code :
L'utilisateur saisi une date, une heure et une durée, vous voulez voir la dispo des salles ou les salles déjà prévues pour ce groupe (table prévisions)?
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
||
|
|
00
|
|
|
#3 | ||
![]() ![]() |
Je pense que cette requête devrait répondre au problème :
Code :
Si cette requête est à mettre en oeuvre sur un SGBD, il faudra peut-être l'adapter aux fonctions de dates propres au à celui-ci, notamment pour les opérations d'addition d'heures qui permettent de trouver l'heure de fin à partir de l'heure de début et de la durée.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#4 |
|
Invité de passage
![]() Étudiant Inscription : octobre 2011 Messages : 2 ![]() |
Tout d'abord merci de vos réponses !!!
Quelques précisions! Je veux qu'en rentrant le numéro du groupe, l'heure de début... que la requête me donne la liste des salles disponibles pour ce groupe! iberserk : - heuredebut pointe vers heuresID dans la table heures - il n'y a que jour dans la table prévisions CinePhil, je comprend l'idée de ta requête, cependant je n'arrive pas à l'adapter à Access! Je n'arrive pas à faire les calculs pour additionner les heures !!! Pour faire mon calcul d'heures, je dois plutôt utiliser les nombreHeure dans les tables heures et durees, NON? Si vous voulez plus de précisions, on peut échanger par mails |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 3 ![]() |
Bonjour,
J'ai la même requête à effectuer concernant une gestion de salles. Je n'arrive pas à réutiliser le code de CinePhil. ![]() Que veulent dire les ":" par exemple dans ":numero_groupe". Cela veut-il dire que c'est un paramètre saisi par l'utilisateur ? Je souhaiterais également connaître la différence entre NOT IN et NOT EXISTS ? Merci d'avance ,Cordialement |
|
|
00
|
|
|
#6 | ||||
![]() ![]() |
Pas étonnant, Access a un SQL pourri !
![]() Citation:
Citation:
Plus "sémantiquement", Code :
WHERE colA NOT IN (liste, de, valeurs) Code :
Dans le cas de cette discussion, il s'agit bel et bien de donner les salles pour lesquelles il n'existe pas de réservation au jour et à l'horaire indiqué.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||||
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 3 ![]() |
Tout d'abord merci beaucoup pour toutes ces précisions !
J'ai tenté de modifier le code pour une utilisation sous ACCESS de telle sorte : Code :
![]() Merci pour toutes vos réponses et votre aide ! |
||
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() |
Ca aurait été bien de poster l'erreur mais je suppose que c'est ca (je ne suis pas allé plus loin du coups...):
C'est surement non?
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
10
|
|
|
#9 | ||
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 3 ![]() |
Merci beaucoup !
ça me fait un problème de résolu ! Bon par contre il y en a encore quelques uns ![]() Quand je lance la requête ça me demande bien le numéro du groupe que je renseigne, la date également mais en suite ça me demande de renseigner "heure_debut". Je pense que j'ai un erreur à la ligne 18 mais je comprend pas laquelle... Merci pour votre aide ... Code :
|
||
|
|
00
|
|
|
#10 |
|
Invité régulier
![]() Tiffany PitelÉtudiant Inscription : novembre 2011 Messages : 13 ![]() |
Salut!
Bon tout d'abord, je précise que je suis débutante mais bon une remarque peut toujours servir. J'ai récemment dû écrire une requête avec des dates où je devais ajouter un jour à chaque date. (J'ai d'ailleur ouvert une discussion qui a été résolue mais qui rest en debut de page si jamais tu veux jette un oeil) Par ailleurs, moi je travaille sur access 2010 mais à l'université j'utilises access 2007 je crois et cela ne change pas grand chose a priori sur l'écriture de la requête elle même. Donc je crois que lorsque tu veux ajouter quelque chose à une date il faut que tu utilises DATEADD. Voici ta fonction: Nous avons besoin d’une fonction particulière : • DATEADD (type,nombre,champ), telle que, type : "h" pour heures, "n" pour minutes, "s" pour secondes, "m" pour mois, "y" pour années, "d" pour jours… Donc, par exemple: Si je veux ajouter deux jours à un champ nommé Date1 (qui est donc de type date #jj/mm/aaaa#) Je fais: DATEADD ("d", 2, Date1) J'espère t'aider. |
|
|
10
|
Copyright © 2000-2012 - www.developpez.com