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 :

SQL - Regrouper des enregistrements...


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2005
    Messages : 13
    Points : 13
    Points
    13
    Par défaut SQL - Regrouper des enregistrements...
    Bonjour,
    J'ai un table dans laquelle j'ai deux champs : PRENOM et DATE_DEMANDE

    Exemple du contenu de la table :

    Jaques 2004-11-18
    André 2004-12-24
    Simon 2005-01-04
    André 2005-02-01
    Simon 2005-02-06
    Je voudrais faire une requête pour grouper les prénoms, mais les trier par ordre descendant de DATE_DEMANDE. Ce qui me donnerais :

    Simon 2005-02-06 (Date la plus récente)
    Simon 2005-01-04
    André 2005-02-01 (Date la plus récente mais moins que Simon)
    André 2004-12-24
    Jaques 2004-11-18 (Date la moins récente et ainsi de suite...)
    Quelqu'un peut-il m'aider à batir cette requête SQL ?

    Merci beaucoup.

    Régent.

    [Déplacé par King Kaiser]
    [Modération : balises [quote] ajoutées par LeoAnderson]

  2. #2
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Points : 4 006
    Points
    4 006
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Select *
    From TaTable
    Order By PRENOM, DATE_DEMANDE DESC
    ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2005
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    Merci pour cette réponse.

    La complexité de mon problème viens du fait que je veux conserver les prénoms groupés et je veux trier les groupes par leur date la plus récente. Donc le trie ne doit pas se faire par l'index alphabétique des prénoms mais bien par la date la plus récente de chaque groupe.

    J'espère avoir mieux exprimé mon problème.

    Merci encore !

  4. #4
    Membre actif Avatar de allyson
    Inscrit en
    Août 2003
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 261
    Points : 272
    Points
    272
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Select * 
    From TaTable 
    Group By PRENOM
    Order By  DATE_DEMANDE DESC
    non?
    .: and Justice for all :.
    ------------------------------------------------------------
    Membre du jury de l'élection de Mister DVP.com
    les règles du forum
    de penser au tag

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2005
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    J'ai dû remplacer le * par les noms de colonne car FireBird me donnait un code d'erreur.

    La requête à passé mais le résultat N'est pas bon : j'ai un trie sur les dates, mais mes groupes ce sont brisés.

    Ma requête (avec les vraies noms de champs)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Select ID_ORGANISATION,DATE_DEMANDE from SOUTIEN
    group by ID_ORGANISATION,DATE_DEMANDE
    order by DATE_DEMANDE desc;
    [Modération : balises [code] ajoutées par LeoAnderson]

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    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
    27
    28
    CREATE TABLE T_DEMANDE_DMD 
    (DMD_NOM VARCHAR(16),
     DMD_DATE DATETIME)
     
    SET DATEFORMAT YMD
     
    INSERT INTO T_DEMANDE_DMD VALUES ('Jaques','2004-11-18')
    INSERT INTO T_DEMANDE_DMD VALUES ('André','2004-12-24')
    INSERT INTO T_DEMANDE_DMD VALUES ('Simon','2005-01-04')
    INSERT INTO T_DEMANDE_DMD VALUES ('André','2005-02-01')
    INSERT INTO T_DEMANDE_DMD VALUES ('Simon','2005-02-06')
     
     
    SELECT DMD_NOM, (SELECT MAX(DMD_DATE) 
                     FROM T_DEMANDE_DMD DM2 
                     WHERE DM2.DMD_NOM = DM1.DMD_NOM),
           DMD_DATE
     
    FROM   T_DEMANDE_DMD DM1
    ORDER  BY 2 DESC, 1
     
    DMD_NOM                                                                 DMD_DATE                                               
    ---------------- ------------------------------------------------------ ------------------------------------------------------ 
    Simon            2005-02-06 00:00:00.000                                2005-01-04 00:00:00.000
    Simon            2005-02-06 00:00:00.000                                2005-02-06 00:00:00.000
    André            2005-02-01 00:00:00.000                                2005-02-01 00:00:00.000
    André            2005-02-01 00:00:00.000                                2004-12-24 00:00:00.000
    Jaques           2004-11-18 00:00:00.000                                2004-11-18 00:00:00.000
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2005
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    WOW !!!

    Merci c'est pas mal çà la solution à mon problème !

    Si je déduis bien, les nombres 2 et 1 de la clause ORDER BY représentent respectivement les colonnes 2 et 1 du SELECT ?

    Je suis content de voir comment imbriquer un SELECT dans un autre SELECT.

    Merci beaucoup !

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

Discussions similaires

  1. [SQL] Regrouper des valeurs : fonction php équivalente à Group BY
    Par thibaut06 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/02/2008, 14h58
  2. Réponses: 2
    Dernier message: 12/09/2007, 11h56
  3. Sql : regrouper des variables
    Par matybouch dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 14/06/2007, 13h48
  4. comment regrouper des enregistrements ?
    Par lecongolais dans le forum Bases de données
    Réponses: 1
    Dernier message: 21/09/2006, 19h11
  5. [PL/SQL] Parcours des enregistrements contenus dans 1 curso
    Par lapartdombre dans le forum Oracle
    Réponses: 6
    Dernier message: 01/12/2005, 13h50

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