Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/02/2011, 15h42   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 9
Points : 1
Points : 1
Par défaut Trouver heure la plus proche

Bonjour, je rencontre des difficultés à faire fonctionner une requête qui doit aller chercher l'heure la plus proche dans une autre table de ma base de donnée. Ceci me permettrait de refaire une clé afin de relier les informations d'une table à l'autre.
Je l'ai construite comme ceci:

Code :
1
2
3
4
SELECT table1.*,
IIf(DateDiff("n",table1.heure,table2.heure)<30 & DateDiff("h",table1.heure,table2.heure)=<1,table2.heure, NULL) AS CLOSESTHOUR
 
.....
Cette requête me renvoie un champ erroné ne répondant pas à mes attentes. J'obtiens par exemple :

table1.heure CLOSESTHOUR
11/2/2011 8h40 11/2/2011 8h53
11/2/2011 8h40 11/2/2011 16h30

Ma fonction IIf ne fonctionne pas correctement et je n'arrive pas à comprendre d'où vient le problème. J'ai imaginé qu'access ne prenait en compte que les minutes, j'ai donc ajouté la 2e condition de la fonction IIf, sans grand succès.
Peut être auriez vous une autre méthode et/ou des commentaires pour m'aider?
Merci d'avance.
marpanh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 17h11   #2
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 258
Points : 5 258
Salut,

Il me semble qu'il faut utiliser la fonction Valeur absolue :

Code sql :
1
2
3
...
IIf(Abs(DateDiff("n",table1.heure,table2.heure))<30,table2.heure, NULL) AS CLOSESTHOUR
...

A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 17h38   #3
Invité de passage
 
Inscription : janvier 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 9
Points : 1
Points : 1
Bonjour,

Merci en effet cela rend ma fonction plus rigoureuse, cela étant, elle me renvoie exactement le même résultat. J'ai utilisé la fonction min et elle marche correctement.

Merci de vous être penché sur mon problème.
marpanh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h48.


 
 
 
 
Partenaires

Hébergement Web