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

SQL Oracle Discussion :

Jointure 2 tables et fonction MAX


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juin 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 11
    Par défaut Jointure 2 tables et fonction MAX
    Bonjour

    je souhaite récupérer dans une table l'enregistrement le plus récent en faisant une jointure avec la table contenant ma clé primaire.
    Concrètement :
    table1 : macle1 (cle primaire), monchamps1
    table2 : macle2, monchamps2, datecreation2

    Requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select macle1,monchamps2,max(datecreation2)
    from table1 p1, table2 p2
    where macle1 = macle2
    ==> dans ce cas je veux la bonne valeur de monchamps2 et datecreation2 en utilisant la fonction max(datecreation2)

    MAJ : j'ai trouvé une solution qui me semble pas performante sur un gros volume de données

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select macle1,monchamps2,datecreation2
    from table1 p1, table2 p2
    where macle1 = macle2
    and datecreation2 = (
                 select max(datecreation2)
                 from table1 p1, table2 p2
                 where macle1 = macle2
                  )
    si quelqu'un a quelque chose de meilleur je suis preneur.


    merci d'avance,
    :-)

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611

  3. #3
    Membre habitué
    Inscrit en
    Juin 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 11
    Par défaut
    merci pour le lien mais concrètement je ferais comment ?
    désolé je suis pas un pro sql

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    J'avais mal compris votre question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Select *
      From (
            SELECT p1.empno, p1.ename, p1.hiredate, p2.dname,
                   row_number() over (order by p1.hiredate desc) r
              FROM emp p1, dept p2
             WHERE p1.deptno = p2.deptno
    )
    where r = 1
    /
    row_number ou rank ou dense_rank en fonction de ce que vous voulez obtenir si pleusieurs occurences "la plus recente" existent.

Discussions similaires

  1. jointure gauche avec fonction max
    Par nicoaix dans le forum Requêtes
    Réponses: 6
    Dernier message: 13/05/2011, 16h35
  2. Jointure de table avec Interbase
    Par ada_b dans le forum InterBase
    Réponses: 21
    Dernier message: 12/05/2010, 19h52
  3. Réponses: 3
    Dernier message: 03/03/2010, 19h05
  4. Fonction max d'un tableau de variables...
    Par Romalafrite dans le forum ASP
    Réponses: 7
    Dernier message: 20/07/2004, 10h38
  5. requete(jointure 2 tables) qui marche pas
    Par DaxTaz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/06/2004, 17h50

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