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

Langage SQL Discussion :

Selection de la ligne la plus récente par référence unique dans une table


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Par défaut Selection de la ligne la plus récente par référence unique dans une table
    Bonjour
    J'ai une table de la forme :

    Date_MAJ Référence Info
    12/02 01 abc
    10/02 01 cde
    10/02 02 efg
    09/03 02 ghi

    Je veux récupérer une ligne par référence et je veux celle qui a la date la plus récente( par référence )
    Dans l'exemple ci-dessus je voudrais donc avoir en réponse ceci :
    12/02 01 abc
    10/02 02 efg

    Comment faire j'ai tenté quelques requêtes sql avec max ou group by mais je ne vois pas.

    Merci d'avance pour vos réponses

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

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 453
    Par défaut
    Bonjour,
    Il suffit de se dire que la plus récente pour une référence donnée est celle pour laquelle il n'en existe pas de plus récente pour la même référence...
    Donc avec un not exists, une jointure externe... c'est tout à fait faisable.

    Tatayo.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Par défaut
    J'ai écris ma requête sous cette forme Ref_Capeur correspond à la référence unique que je veux et date_mise_a_jour à la date_maj:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    String request = "SELECT c.Ref_Capteur, c.Ref_Modele_Capteur, e.Nom_Emplacement, e.Nom_Sous_Emplacement, empl.Prenom_Responsable, empl.Nom_Responsable, c.Date_Validite"
                    + " from Capteur c, Est_Localise e, Emplacement empl, Mise_A_Jour m "
                    + " where c.Id_Localisation = e.Id_Localisation "
                    + " and e.Nom_Emplacement = empl.Nom_Emplacement"
                    + " and e.Nom_Emplacement = 'Stock'"
                    + " and c.Ref_Capteur = m.Ref_Capteur"
                    + " and m.Date_Mise_A_Jour = (Select Max(Date_Mise_A_Jour) "
                    + "  from  Capteur c2 , Mise_A_Jour maj"
                    + "  where c2.Ref_Capteur = maj.Ref_Capteur"
                    + " and c.Ref_Capteur = c2.Ref_Capteur)"
                    + " and m.plage_Min_VX <= " + plageMin + " and m.plage_Max_VX >=" + plageMax
                    + " and m.plage_Min_VY <= " + plageMin + " and m.plage_Max_VY >=" + plageMax
                    + " and m.plage_Min_VZ <= " + plageMin + " and m.plage_Max_VZ >=" + plageMax;
    Et cela semble fonctionner au vu de mes tests.
    Validez -vous cette solution ? Je ne suis pas vraiment expert ^^'

    Merci

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 453
    Par défaut
    Techniquement oui, mais j'en connais quelques uns qui vont hurler en voyant des jointures dans la clause WHERE...
    D'ailleurs je ne vois pas l'intérêt de la jointure dans la sous-requête, puisqu'elle se fait sur la référence du capteur, et la restriction aussi.
    Autant ne prendre que la table mise_a_jour.

    Tatayo.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Par défaut
    Ok corrigé merci !

  6. #6
    Membre émérite Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Par défaut
    Citation Envoyé par tatayo Voir le message
    mais j'en connais quelques uns qui vont hurler en voyant des jointures dans la clause WHERE...
    1992, les gars!!!

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

Discussions similaires

  1. [MySQL-5.0] Remplacer un int par un string dans une table
    Par gameur44 dans le forum Requêtes
    Réponses: 3
    Dernier message: 04/05/2013, 13h22
  2. remplacer les espaces par des _ dans une table
    Par NeutronDance dans le forum Requêtes
    Réponses: 3
    Dernier message: 15/10/2010, 00h16
  3. [eZ Publish] Affichage par cellule défini dans une table
    Par lordlifen dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 28/06/2010, 18h03
  4. Réponses: 10
    Dernier message: 23/11/2009, 22h49
  5. Récupérer les lignes uniques dans une table
    Par Empty_body dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/01/2009, 19h23

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