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 :

Requête assez complexe


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Par défaut Requête assez complexe
    Bonjour a tous,
    j'aurais besoin d'aide concernant un problème de création de requête et de récupération de données.

    Je vais donner un exemple pour que tout le monde comprenne mon besoin.

    En base de donnée j'ai quelque chose comme ça dans ma table 'TEST'

    PERSONNE | CHAMP | VALEUR | DATE_MODIFICATION
    toto 01 10 01/01/2010
    toto 01 12 02/01/2010
    toto 01 20 03/01/2010
    toto 02 01 01/01/2010
    toto 02 02 02/01/2010
    toto 03 21 02/01/2010
    toto 03 22 04/01/2010
    toto 03 28 05/01/2010
    toto 04 48 01/01/2010

    D'autres personnes et d'autres champs existent mais je réduis pour l'exemple.

    Ma question est la suivante :

    Comment est-il possible de récupérer pour chaque PERSONNE , la VALEUR des CHAMP pour la DATE_MODIFICATION la plus grande.

    Le résultat devrait donner.

    PERSONNE | CHAMP | VALEUR | DATE_MODIFICATION
    toto 01 20 03/01/2010
    toto 02 02 02/01/2010
    toto 03 22 05/01/2010
    toto 04 48 01/01/2010

    Je n'arrive pas à voir la requête pour résoudre ce problème.

    Merci d'avance à ceux qui pourront m'aider.

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 953
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 953
    Par défaut
    C'est très facile avec FIRST et LAST
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    SQL>   with test (PERSONNE , CHAMP , VALEUR , DATE_MODIFICATION) as (
      2  select 'toto', '01', '10', to_date('01/01/2010','dd/mm/yyyy') from dual union all
      3  select 'toto', '01', '12', to_date('02/01/2010','dd/mm/yyyy') from dual union all
      4  select 'toto', '01', '20', to_date('03/01/2010','dd/mm/yyyy') from dual union all
      5  select 'toto', '02', '01', to_date('01/01/2010','dd/mm/yyyy') from dual union all
      6  select 'toto', '02', '02', to_date('02/01/2010','dd/mm/yyyy') from dual union all
      7  select 'toto', '03', '21', to_date('02/01/2010','dd/mm/yyyy') from dual union all
      8  select 'toto', '03', '22', to_date('04/01/2010','dd/mm/yyyy') from dual union all
      9  select 'toto', '03', '28', to_date('05/01/2010','dd/mm/yyyy') from dual union all
     10  select 'toto', '04', '48', to_date('01/01/2010','dd/mm/yyyy') from dual
     11  )
     12  select personne, champ,
     13         max(valeur) keep (dense_rank first order by date_modification desc) as max_val,
     14         max(date_modification)
     15    from test
     16   group by personne, champ
     17  /
     
    PERS CH MA MAX(DATE
    ---- -- -- --------
    toto 01 20 03/01/10
    toto 02 02 02/01/10
    toto 03 28 05/01/10
    toto 04 48 01/01/10
     
    SQL>

  3. #3
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Par défaut
    Haaaaaaaa,
    je vais essayer tout de suite.

    Merci.

  4. #4
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Par défaut
    Ho ca marche, parfait.
    c'est juste ce qu'il me faut.
    Maintenant il faut que je comprenne le principe du First Last pour pouvoir le réutiliser plus tard.

    Encore merci pour la réponse rapide et pertinente.

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

Discussions similaires

  1. [AC-2003] requête assez complexe
    Par eric232 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 29/08/2011, 15h31
  2. [1.x] Requêtes assez complexes
    Par blasil64 dans le forum Symfony
    Réponses: 5
    Dernier message: 20/03/2010, 14h15
  3. [AC-2003] Requête assez complexe
    Par Apopis01 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 30/12/2009, 11h11
  4. Requête assez complexe
    Par Naruto_kun dans le forum Développement
    Réponses: 1
    Dernier message: 12/02/2009, 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