p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Futur Membre du Club
    Inscrit en
    avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : avril 2008
    Messages : 62
    Points : 18
    Points
    18

    Par défaut Sélectionner la valeur la plus récente entre des doublons

    Bonjour tous,

    J'aimerais lors d'une sélection de données dans une table, pouvoir ne sélectionner que l’enregistrement le plus ressent en cas de doublons.
    J'illustre par un exemple:
    J'ai une table d'identification pour les locataires d'un véhicule qui entre autre comporte les champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Id_vehicule, ..., date_insertion
    .
    Pour une raison que j'ignore, aucun champ n'est prévu pour le statut de l'enregistrement (ce qui aurait simplifié mon travail). J'aimerais lors des sélections dans la table, en cas de doublons trouvé sur le champ id_vehicule, ne sélectionner que les enregistrements avec le champ insert_date le plus ressent.

    Merci d'avance!

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur d'études en décisionnel
    Inscrit en
    septembre 2008
    Messages
    7 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études en décisionnel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : septembre 2008
    Messages : 7 167
    Points : 15 029
    Points
    15 029

    Par défaut

    Vous pouvez rajouter une colonne à votre sélection dans un premier temps, puis filtrer dessus dans un second :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select Id_vehicule, ..., date_insertion
      from (select Id_vehicule, ..., date_insertion
                 , row_number() over(partition by Id_vehicule order by date_insertion desc) as rn
              from ...)
     where rn = 1;

  3. #3
    Futur Membre du Club
    Inscrit en
    avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : avril 2008
    Messages : 62
    Points : 18
    Points
    18

    Par défaut

    Merci Waldar, je vais essayer cela et voir si j'ai satisfaction...

  4. #4
    Membre du Club
    Homme Profil pro
    ingénieur d'étude PL/SQL
    Inscrit en
    octobre 2002
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur d'étude PL/SQL

    Informations forums :
    Inscription : octobre 2002
    Messages : 52
    Points : 51
    Points
    51

    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Id_vehicule, date_insertion
    FROM (SELECT Id_vehicule, max(date_insertion) FROM ...
             GROUP BY Id_vehicule          )

  5. #5
    Futur Membre du Club
    Inscrit en
    avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : avril 2008
    Messages : 62
    Points : 18
    Points
    18

    Par défaut

    Citation Envoyé par vttvolant Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Id_vehicule, date_insertion
    FROM (SELECT Id_vehicule, max(date_insertion) FROM ...
             GROUP BY Id_vehicule          )
    merci pour ta contribution vttvolant mais je pense pas que ta solution soit bonne, car à mon avis elle n'opère qu'un regroupement en ne maintenant que la date la plus récente.

    Par contre celle Waldar me renvoie le résultat souhaité. Merci encore à tous!

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

Discussions similaires

  1. Compter les valeurs d'un tableau entre des intervalles
    Par popoliline dans le forum Fonctions
    Réponses: 3
    Dernier message: 16/03/2010, 14h23
  2. [vXIr2] valeur la plus récente d'une table
    Par schkrumble dans le forum Designer
    Réponses: 5
    Dernier message: 02/02/2010, 14h29
  3. [XL-2003] comment on prend la valeur la plus grande entre 3valeurs
    Par amine2613 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/04/2009, 12h04
  4. Réponses: 3
    Dernier message: 18/02/2009, 10h00
  5. routine DOS pour sélectionnée le fichier le plus récent
    Par sofiane1111 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 21/09/2007, 10h56

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