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

Langage SQL Discussion :

Requête SQL avec max


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Requête SQL avec max
    Bonjour,
    Une petite requête me pose problème :
    J'ai une table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ID	C2		C3
    1	01/01/1900 	36
    2	27/08/2010 	36
    3	05/08/2010 	55
    4	01/01/1900 	36
    5	10/06/2010 	36
    6	01/07/2010 	55
    Je veux obtenir le résultat suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ID	C2		C3
    2	27/08/2010 	36
    3	05/08/2010 	55
    C'est à dire : faire un group by (C3) avec le max du champ C2 mais je veux l'ID dans mes résultats.
    Si je ne met pas l'ID dans le group BY j'ai une erreur ce qui est normal , si je le met je n'ai pas le bon résultat.

    Je suis sous SQL-Server 2005
    Que faire ?

  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
    En utilisant une fonction de fenêtrage :
    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
    With MaTable (ID, C2, C3) as
    (
    select 1, convert(datetime, '01/01/1900', 103), 36 union all
    select 2, convert(datetime, '27/08/2010', 103), 36 union all
    select 3, convert(datetime, '05/08/2010', 103), 55 union all
    select 4, convert(datetime, '01/01/1900', 103), 36 union all
    select 5, convert(datetime, '10/06/2010', 103), 36 union all
    select 6, convert(datetime, '01/07/2010', 103), 55
    )
      ,  sr (ID, C2, C3, rn) as
    (
    select ID, C2, C3,
           row_number() over(partition by c3 order by c2 desc)
      from MaTable
    )
    select ID, C2, C3
      from sr
     where rn = 1;
     
    ID          C2                      C3
    ----------- ----------------------- -----------
    2           2010-08-27 00:00:00.000 36
    3           2010-08-05 00:00:00.000 55

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Parfait

    Merci beaucoup

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/03/2014, 11h18
  2. [11g] Requête SQL avec un Max
    Par David1259 dans le forum SQL
    Réponses: 3
    Dernier message: 26/03/2013, 17h53
  3. Requête SQL avec function MAX() sur une date
    Par mehdiyou1985 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 03/12/2012, 21h52
  4. [MySQL] Requête SQL avec clause where max
    Par younes371 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/12/2009, 09h21
  5. PB requète SQL avec Interbase
    Par missllyss dans le forum InterBase
    Réponses: 2
    Dernier message: 15/07/2003, 11h37

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