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 :

Requête recherche sur date la plus récente pour chaque type d'enregistrement


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2023
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2023
    Messages : 41
    Points : 39
    Points
    39
    Par défaut Requête recherche sur date la plus récente pour chaque type d'enregistrement
    Bonjour

    J'ai deux tables jointes.
    La table 1 est une table ou j'ai tous mes dossiers
    La table 2 rassemble tous les évènements de mes dossiers. Un dossier a donc plusieurs évènements.

    J'aimerai construire une requête qui me donne
    - pour tous les dossiers de table 1
    - le plus récent évènement enregistré dans table 2
    - vieux de plus d'un mois.

    Il s'agit de savoir quels sont les dossiers qui n'avancent pas.

    Mes tables:
    Nom : Screenshot_2.png
Affichages : 125
Taille : 4,0 Ko

    Pour l'heure, je n'ai réussi qu'à faire une requête qui me sélection tous les évènements de la table 1 qui ne sont pas archivés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT taffaires.Id_Affaire, Evenements.Ev_affaire, Evenements.Date_e, Evenements.Auteur_e, Evenements.Type_e, Evenements.Nom_e
    FROM taffaires INNER JOIN Evenements ON taffaires.Id_Affaire = Evenements.Ev_affaire
    WHERE (((Evenements.Ev_affaire)=[taffaires]![Id_Affaire]) AND ((taffaires.Archive)=False));
    Merci pour vos éventuelles pistes ou solutions.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 284
    Points : 12 983
    Points
    12 983
    Par défaut
    Bonjour,
    C'est une question ultra récurrente...
    Escartefigue nous a fait une entrée dans son blog pour cette question: c'est .

    Tatayo.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2023
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2023
    Messages : 41
    Points : 39
    Points
    39
    Par défaut
    Quel aide ! Autant ne pas répondre... je sais encore aller de forum en post divers.
    J'ai fini par trouvé des élements.... un peu ailleurs....
    mais je partage, ça pourra peut-être servir à d'autres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Evenements.Ev_affaire, Max(Evenements.Date_e) AS MaxDeDate_e, Last(Evenements.Nom_e) AS DernierDeNom_e, taffaires.Ref_dossier, taffaires.Etat
    FROM taffaires INNER JOIN Evenements ON taffaires.Id_Affaire = Evenements.Ev_affaire
    GROUP BY Evenements.Ev_affaire, taffaires.Ref_dossier, taffaires.Etat, taffaires.Archive
    HAVING (((Max(Evenements.Date_e)) Between Date()-[Formulaires]![Etats]![Delai] And Date()-10000) AND ((taffaires.Archive)=False))
    ORDER BY Max(Evenements.Date_e);

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 423
    Points : 20 001
    Points
    20 001
    Billets dans le blog
    67
    Par défaut
    Bonjour,

    Je vois que le problème est résolu, toutefois pour éviter d'utiliser la fonction last qui peut produire dans certains cas des résultats inattendus, vous pouvez également essayer ceci :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Evenements.Ev_affaire, Evenements.Date_e, Evenements.Nom_e, taffaires.Ref_dossier, taffaires.Etat
    FROM taffaires INNER JOIN Evenements ON taffaires.Id_Affaire = Evenements.Ev_affaire
    WHERE Evenements.Date_e=(SELECT Max(Events.Date_e) FROM Evenements As Events WHERE taffaires.Id_Affaire = Events.Ev_affaire) And (Evenements.Date_e Between Date()-[Formulaires]![Etats]![Delai] And Date()-10000) AND (taffaires.Archive=False)
    ORDER BY Evenements.Date_e;

    Cordialement

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2023
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2023
    Messages : 41
    Points : 39
    Points
    39
    Par défaut Merci
    Merci pour cette précision.
    Cela m'aide bien car si ma solution fonctionnait, il me masquait l'éventuel autre évènement le plus ancien qui a eu lieu le même jour.
    Donc, pour l'usage, c'est mieux!
    Merci beaucoup.

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 423
    Points : 20 001
    Points
    20 001
    Billets dans le blog
    67
    Par défaut
    Pas de soucis et si ça peut être utile à d'autres..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/08/2021, 15h01
  2. Réponses: 3
    Dernier message: 11/03/2020, 20h42
  3. [AC-2016] Requête SQL sur date la plus récente
    Par guenfood dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 15/04/2019, 08h52
  4. Réponses: 12
    Dernier message: 19/08/2017, 19h03
  5. [AC-2007] Recherche enregistrement sur date la plus récente
    Par pilou27 dans le forum IHM
    Réponses: 10
    Dernier message: 24/03/2014, 09h39

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