Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Oracle] Récupérer première ligne pour chaque id

Sujet résolu
    24 novembre 2011 à 15:16:12

    Bonjour à tous,

    J'ai une requête SELECT contenant une jointure qui me fait donc apparaître des lignes en plusieurs exemplaires avec un seul champs qui diffère.
    Jusque là rien d'anormal.

    J'ai trié ces résultats avec un ORDER BY et j'aimerai maintenant récupérer la première ligne pour chaque groupe de ligne similaire.

    Je vous donne ma requête :


    select a.id,a.nom,b.date
    from tableA a 
    inner join tableB b on b.id = a.id
      AND b.date < a.date
    order by a.id,b.date desc
    


    En gros je voudrai récupérer directement la première ligne "id,nom,date" pour chaque id
    • Partager sur Facebook
    • Partager sur Twitter
      24 novembre 2011 à 15:21:19

      Pkoi tu ne mets pas un distinct ??
      • Partager sur Facebook
      • Partager sur Twitter
      Ca ne marche pas, ça ne veut rien dire ! Qu'est ce qui ne marche pas ?
        24 novembre 2011 à 15:26:35

        Dans ce cas, le DISTINCT ne va pas m'afficher que la première ligne puisqu'il peut y avoir plusieurs dates pour un même id
        • Partager sur Facebook
        • Partager sur Twitter
          24 novembre 2011 à 15:31:29

          Et si tu fais min(b.date) dans ton select ?
          et que tu rajoutes un group by a.id, a.nom ?
          • Partager sur Facebook
          • Partager sur Twitter
          Ca ne marche pas, ça ne veut rien dire ! Qu'est ce qui ne marche pas ?
            24 novembre 2011 à 16:03:03

            Works! je savais que c'était pas compliqué

            Merci rencoco!

            Pour ceux qui veulent le code :

            select a.id,a.nom,max(b.date)
            from tableA a 
            inner join tableB b on b.id = a.id
              AND b.date < a.date
            group by a.id,a.nom
            order by a.id
            
            • Partager sur Facebook
            • Partager sur Twitter

            [Oracle] Récupérer première ligne pour chaque id

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown