IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Jointure tables avec enregistrements horodatés


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Janvier 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2014
    Messages : 2
    Par défaut Jointure tables avec enregistrements horodatés
    Bonjour,

    Je cherche a faire une jointure sur des tables qui ont des enregistrements avec horodatage qui ne coincident pas toujours.

    Il me faudrait une fonction qui me rapporte la valeur dont la date est la plus proche de celle de la table de référence?

    En fait, il s'agirait d'une fonction équivalente à un recherchev() sous EXCEL dont la valeur propre serait égale à VRAI (mais Dlookup de ACCESS ne semble pas faire cela).

    Je ne suis pas un pro de Access ou du SQL, ayez pitié, parlez-moi avec des mots simples!

    Merci
    Bonne journée

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    L'équivalent de RechercheV en Access est DFirst() (TrouverPremier en français il me semble).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DFirst("nomChampALire"; "NomTaTable"; "Ici ta condition de recherche")
    La partie délicate va être la condition de recherche, dans ton cas il faurdait sans doute utiliser DMax() (TrouverMax en français ?) au lieu de DFirst(), car tu cherches l'enregistrement dont la date est la plus proche d'une date donnée donc celle dont la date maximum est strictement inférieure ou égale à la date donnée. (Oui ce n'est pas intuitif au premier regard).


    Ça devrait être un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DMax("nomChampALire"; "NomTaTable"; "[TonChampDate]<=#" & format([NomTaDate];"aaaa\-mm\-jj") & "#")
    Les # servent de délimteur de date.
    Le format s'assure que la date soit bien comprise en s'assurant que par exemple le 01/02/2013 soit bien compris comme le 1er Février 2013 (format français : jj/mm/aaaa) et non le 2 Janvier 2013 (format américain : mm/jj/aaaa).

    Il faudra peut-être utiliser "yyyy\-mm\-dd" au lieu de "aaaa\-mm\-jj" dans format().

    DMax n'est pas la fonction la plus rapide et si tu as beaucoup de données cela peut paraître.

    Une autre solution serait de faire
    1. une requête de regroupement (que j'appellerai RMax) qui te donne la date maximum dans la table "jointe" (que j'appellerai T2) dont la date est inférieure ou égale à la date voulue.
    2. la puis de faire une requuête en jointure entre T2 et RMAX afin d'avoir les données de T2 à la date Max (que j'applerai RT2Max) sur la date.
    3. et enfin de faire une jointure entre T1 et RT2Max sur le code client ou tout autre élément pertinent SAUF la date.


    Donc au total 3 requêtes.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Janvier 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2014
    Messages : 2
    Par défaut
    Merci, je vais essayer ça... c'est un peu plus complexe que ce je pensais!

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Citation Envoyé par tomVB Voir le message
    c'est un peu plus complexe que ce je pensais!
    Oui j'ai eu la même réflexion lorsque je l'ai fait la 1ère fois car c'est si évident pour un humain.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/03/2014, 21h55
  2. Jointure table avec champ non egaux (mysql)
    Par jinjung dans le forum Débuter
    Réponses: 2
    Dernier message: 03/03/2008, 12h13
  3. Modification de table avec enregistrements
    Par ep31 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 24/09/2007, 18h29
  4. Tables jointes, avec enregistrements multiples
    Par ARRG dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/07/2004, 14h00
  5. Réponses: 4
    Dernier message: 16/03/2004, 14h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo