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

PL/SQL Oracle Discussion :

Sélectionner la valeur la plus récente entre des doublons


Sujet :

PL/SQL Oracle

  1. #1
    Membre du Club
    Profil pro
    Etudiant
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 48
    Points
    48
    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
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    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
    Membre du Club
    Profil pro
    Etudiant
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 48
    Points
    48
    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
    53
    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 : 53
    Points : 69
    Points
    69
    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
    Membre du Club
    Profil pro
    Etudiant
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 48
    Points
    48
    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 Langage
    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