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

Requêtes et SQL. Discussion :

Selectionner le resultat le plus recent de chaque catégorie


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 15
    Points
    15
    Par défaut Selectionner le resultat le plus recent de chaque catégorie
    Bonjour,

    j'ai une table avec des entrées de différents types (par exemple de A à F)> Pour chaque type il y a divers renseignement dont une date et heure.

    J'aimerai que ma requete me donne uniquement l'entree la plus recente de chaque type

    Exemple:

    A 18h12
    A 17h54
    C 17h40
    B 15h00
    C 14h30

    il me faut comme resultat:

    A 18h12
    B 15h00
    C 17h40

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 350
    Points
    34 350
    Par défaut
    salut
    dans l'idée :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ChampType, Max(ChampDate) FROM MaTable GROUP BY ChampType;

  3. #3
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Je crois que MAX irais ...

    Ah JpCheck m'a devancé

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 15
    Points
    15
    Par défaut
    je vais essayer et je vous dis ca

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 15
    Points
    15
    Par défaut
    ca semble marcher, sauf que j'ai d'autre champs associés à chaque entrée, et si je les ajoute, ba ca fou en l'air le truc. Une idée ?

  6. #6
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    C'est à dire !!!

  7. #7
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 350
    Points
    34 350
    Par défaut
    un peu de lecture devrait faire l'affaire
    http://sqlpro.developpez.com/cours/sqlaz/ensembles/#L1

  8. #8
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 15
    Points
    15
    Par défaut
    dsl pour le manque de détails. En fait par un exemplem ca sera compréhesible:

    A 18h12 info1 info2
    A 17h54 info1 info2
    C 17h40 info1 info2
    B 15h00 info1 info2
    C 14h30 info1 info2

    ca doit donner comme resultat:

    A 18h12 info1 info2
    B 15h00 info1 info2
    C 17h40 info1 info2


    les info1 et 2 sont de simple champs que j'ai juste besoin d'afficher, mais disons que le tris se fait sur les 2 premiers

    je vais tacher de lire la doc, mais je prefere demander aussi
    Merci d'avance

  9. #9
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Tu as le nom de tes colones

  10. #10
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 15
    Points
    15
    Par défaut
    oui:

    "space occupied" et "available space" remplies par des nombres

  11. #11
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Dans la lignée de 'jpcheck'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT ChampType, 
                         Max(ChampDate),
                         [space occupied], 
                         [available space]
    FROM 
            MaTable 
     
    GROUP BY
                 ...
     
    ORDER BY
                ...
    ;
    Je suppose que c'est ce que tu as fait !

  12. #12
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 15
    Points
    15
    Par défaut
    ba je viens d'essayer ca et ca ne marche pas, il me met:

    You tried to execute a query that does not include the specified expression 'space occupied' as a part of an aggregate function

    je sais pas trop quoi faire

  13. #13
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 350
    Points
    34 350
    Par défaut
    dans l'article que je t'ai indiqué, il est précisé que :
    La présence de la clause GROUP BY est nécessaire dès que la clause de sélection, ou le filtre WHERE, ou encore les jointures comportent simultanément des calculs d'agrégation et la présence de colonnes de table hors de calculs d'agrégation.
    De plus, outes les colonnes représentées hors des calculs d'agrégation doivent figurer dans la clause GROUP BY.
    donc les champs "spare..." doivent apparaitre dans le group by

  14. #14
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 15
    Points
    15
    Par défaut
    ba si je les ajoute ca marche absolument plus, il me sort plusieurs fois certains champs_type

  15. #15
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Comme tu n'a pas de clause WHERE enlève le GROUP et le ORDER

  16. #16
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 15
    Points
    15
    Par défaut
    ba si j'emleve order by et groupe by il me pond encore une erreur

    You tried to execute a query that does not include the specified expression 'champ_type' as a part of an aggregate function

  17. #17
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    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
     
    SELECT ChampType, 
               ChampDate,
               [space occupied], 
               [available space]
    FROM 
            MaTable 
     
    WHERE ChampDate = Max(ChampDate)
     
    GROUP BY
                 ...
     
    ORDER BY
                ...
    ;

  18. #18
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 15
    Points
    15
    Par défaut
    déja: Merci beaucoup pour ton aide

    malheusement, ca marche toujours pas

    Cannot have aggregate function in WHERE clause (ChampDate = Max(ChampDate))

  19. #19
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 350
    Points
    34 350
    Par défaut
    Bon, comme on n'arrive pas à te faire pêcher, on va pêcher pour toi :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT MaTable.ChampType, 
                         MaTable.ChampDate,
                         MaTable.[space occupied], 
                         MaTable.[available space]
    FROM 
            MaTable INNER JOIN (SELECT ChampType, Max(ChampDate) AS ChampDate FROM MaTable GROUP BY ChampType) AS R1 ON MaTable.ChampType  = R1.ChampType AND MaTable.ChampDate = R1.ChampDate
     
    ORDER BY
               MaTable.ChampType;

  20. #20
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 15
    Points
    15
    Par défaut
    jvais essayer ca merci.

    Et dsl pour la peche, je suis malheureusement loin d'etre un habitué...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Comment selectionner les plus recents?
    Par Agent_Nivek dans le forum DB2
    Réponses: 3
    Dernier message: 31/12/2008, 16h43
  2. Requete:le moyen de selectionner la date la plus recente
    Par vincefop dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 11/08/2008, 11h05
  3. Importation des fichiers les plus recents
    Par avantoux dans le forum VBA Access
    Réponses: 8
    Dernier message: 28/09/2007, 14h50
  4. Réponses: 2
    Dernier message: 28/11/2005, 08h24
  5. Selectionner le resultat 2 à 4
    Par MachProd dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/11/2005, 17h49

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