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

Access Discussion :

Recherche d'une requête SQL pour récupérer ET concaténer un ensemble de dates


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 29
    Points : 18
    Points
    18
    Par défaut Recherche d'une requête SQL pour récupérer ET concaténer un ensemble de dates
    Bonjour à tous,

    Je me tourne vers vous car je n'arrive pas à récupérer et concaténer un ensemble de dates pour une clé primaire donnée.

    Voici un exemple pour illustrer mon propos :

    Table 1 : ID = 1000 ; NOM = "Pierre"
    Table 2 : ID = 1000 ; DATE_CONSULTATION = 01/01/2016 ; 02/02/2016 ; 03/03/2016

    En gros, je souhaite récupérer Pierre et les DEUX dernières dates de consultation en une seule ligne dans Excel (par ex : Pierre dans cellule A1 et ses deux dernières dates de consultation dans cellule A2)

    Jusqu'à présent, j'arrive à faire cela sans aucun problème avec Marie qui n'a au total qu'une seule date de consultation... puisqu'il me suffit d'indiquer dans le SELECT le nom, la date et de vérifier si l'ID de Marie est présent dans la table 2 avec la clause WHERE ID IN ...

    Auriez-vous une piste à me proposer ?


    Par avance, merci.



    Rolf

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 246
    Points : 5 619
    Points
    5 619
    Par défaut Une possiblilté
    Créer une fonction qui extrait les 2 dernières dates, de ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Public Function DeuxDates(s As Variant) As String
       Dim k As Long
       If Nz(s) = "" Then     '--- si aucune consultation, s est sans doute Null
          DeuxDates = ""
       Else
          k = InStrRev(s, ";")
          If k = 0 Then
             DeuxDates = s
          Else
             k = InStrRev(Left(s, k - 1), ";")
             If k = 0 Then
                DeuxDates = s
             Else
                DeuxDates = Mid(s, k + 1)
             End If
          End If
       End If
    End Function
    ensuite utiliser une requête du genre de celle-ci:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Table1.PersNom, DeuxDates([DateConsult]) AS D2 FROM Table1 LEFT JOIN Table2 ON Table1.ID = Table2.ID;
    Bonne continuation.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Bonjour Eric et merci beaucoup pour ta réponse,

    Je vais regarder ça et je basculerai le topic à Résolu le cas échéant

    Merci encore


    Rolf

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/10/2009, 20h20
  2. Problème avec une requête SQL, pour access
    Par a.bott dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 23/09/2008, 17h08
  3. Parser une requête SQL pour MySQL
    Par gassla dans le forum SGBD
    Réponses: 3
    Dernier message: 02/08/2006, 15h36
  4. [SQL] Recherche d'une requête SQL
    Par kilkikou dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/06/2006, 16h00

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