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

VB.NET Discussion :

Group By et Order By [Débutant]


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 121
    Points : 77
    Points
    77
    Par défaut Group By et Order By
    Salut

    J'ai une table Grades qui contient CodeGrades, TypesGrades
    une table TPersonnels qui Contient CIN, CodeGrades, ...

    Voici ma requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            Rq = "SELECT Grades.TypesGrades, COUNT(TPersonnels.CIN) FROM TPersonnels INNER JOIN Grades ON TPersonnels.CodeGrades = Grades.CodeGrades GROUP BY Grades.TypesGrades "
    Dans une DataGrid de 2 Colonnes (Grades , Total), j'affiche le Grade et le Nombre total des personnes qui ont ce garde. A présent tous fonctionne normalement sauf que les grades sont désordonnés.

    Je veux afficher les grades par ordre décroissant, j'ai utilisé de plus Group By, Order By aucun message d'erreur mais aussi pas d'affichage.

    J'ai essayé plusieurs syntaxes mais pas de résultat.

    Ma question est : peut on utiliser Group By et Order By ensembles?
    si non y a t-il une autre solution?

    Merci.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    oui on peut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Grades.TypesGrades, COUNT(TPersonnels.CIN) as DonnerUnNom
        FROM TPersonnels 
            INNER JOIN Grades ON TPersonnels.CodeGrades = Grades.CodeGrades
        GROUP BY Grades.TypesGrades 
        ORDER BY COUNT(TPersonnels.CIN) DESC
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 121
    Points : 77
    Points
    77
    Par défaut
    Merci Pol63

    J'ai essayé ta proposition avant mais je cherche l'ordre des codeGrades qui sont enregistrés dans ma table et pas l'ordre décroissant ou croissant du total des grades.

    c.à.d Grade1 = 254
    Grade2 = 10
    Grade3 = 1024
    ...

    Merci pour ton aide.

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT Grades.TypesGrades, COUNT(TPersonnels.CIN) as DonnerUnNom
        FROM TPersonnels 
            INNER JOIN Grades ON TPersonnels.CodeGrades = Grades.CodeGrades
        GROUP BY Grades.TypesGrades, Grades.AutreColonne
        ORDER BY Grades.AutreColonne DESC

    ton code serait-il dans le form_load ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 121
    Points : 77
    Points
    77
    Par défaut
    Grade.colonne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     Cn.Open() 'Ouvrir la connection
            '-----------------------------------------------------------------
            Rq = "SELECT Grades.TypesGrades, COUNT(TPersonnels.CIN) FROM TPersonnels INNER JOIN Grades ON TPersonnels.CodeGrades = Grades.CodeGrades GROUP BY Grades.TypesGrades"
            Cmd.CommandText = Rq
            Cmd.Connection = Cn
            Dr = Cmd.ExecuteReader
            Dt.Load(Dr)
            Me.DG1.DataSource = Dt   'Afficher la resultat de la requette dans DG1
            Me.DG1.Columns(0).HeaderText = "Grade"
            Me.DG1.Columns(1).HeaderText = "Total"
            Dr.Close()
    à toi de jouer maitre.

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    si tu veux order by une colonne tu mets order by une colonne
    moi je ne sais pas comment elle s'appelle ta colonne donc je te laisse mettre le nom
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 121
    Points : 77
    Points
    77
    Par défaut
    je n'ai pas de nom de colonne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Cn.Open() 'Ouvrir la connection
            '-----------------------------------------------------------------
            Rq = "SELECT Grades.TypesGrades, COUNT(TPersonnels.CIN) FROM TPersonnels INNER JOIN Grades ON TPersonnels.CodeGrades = Grades.CodeGrades GROUP BY Grades.TypesGrades"
            Cmd.CommandText = Rq
            Cmd.Connection = Cn
            Dr = Cmd.ExecuteReader
            Dt.Load(Dr)
            Me.DG1.DataSource = Dt   'Afficher la resultat de la requette dans DG1
            Me.DG1.Columns(0).HeaderText = "Grade"    'la première colonne qui s'affiche
            Me.DG1.Columns(1).HeaderText = "Total"     'la deuxième colonne qui s'affiche
            Dr.Close()
    j'utilise un bouton pour remplir mon DataGrid
    C'est tous le code seulement.

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Je vais te laisser te relire

    Citation Envoyé par JetLibre Voir le message
    Je veux afficher les grades par ordre décroissant
    Citation Envoyé par JetLibre Voir le message
    J'ai essayé ta proposition avant mais je cherche l'ordre des codeGrades qui sont enregistrés dans ma table
    Citation Envoyé par JetLibre Voir le message
    je n'ai pas de nom de colonne

    comment veux tu qu'on comprenne quelque chose ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 121
    Points : 77
    Points
    77
    Par défaut
    Je veux afficher les grades par ordre décroissant

    dans ma table Grades j'ai
    CodeGrades TypesGrades
    01 Directeur Général
    02 Directeurs
    03 Sous Directeurs
    04 Chef Services
    ... ...
    ... ...
    15 Techniciens
    ... ...
    ... ...
    22 Ouvriers Qualifier
    23 Ouvriers


    dans ma DataGrid, j'affiche les Grades dans la 1 colonne et le Total dans la 2 colonne mais cherche comment les afficher par ordre selon le CodeGrades (23, 22, 21, ..., 01)

    j'espère que j'ai pu expliquer

  10. #10
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT Grades.TypesGrades, COUNT(TPersonnels.CIN), Grades.CodeGrade
        FROM TPersonnels 
            INNER JOIN Grades ON TPersonnels.CodeGrades = Grades.CodeGrades
        GROUP BY Grades.TypesGrades, Grades.CodeGrade
        ORDER BY Grades.CodeGrade DESC
    Tu caches la 3ème colonne du DGV
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  11. #11
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    la colonne n'a pas besoin d'être dans le select par contre il faut bien qu'elle soit dans le group by, soit ma 2ème réponse ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Sauf avec Access (pour la version 2007) qui dira
    Vous avez essayé d'exécuter une requête ne comprenant pas l'expression "grades.CodeGrade" comme une partie de la fonction d'agrégat.
    @JetLibre ; quelle BDD ?
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  13. #13
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 121
    Points : 77
    Points
    77
    Par défaut
    Merci pour tous
    La proposition de rv26t est celle que je cherche, c'est la solution de mon soucie.

    si c'est possible une solution de rendre la 3 colonne invisible pour l'utilisateur.

    Un grand merci pour tout le monde.

  14. #14
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    ton code serait-il dans le form_load ?
    et la réponse à cette question ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  15. #15
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 121
    Points : 77
    Points
    77
    Par défaut
    Oui chère Pol62 est dans la formLoad

  16. #16
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    tu disais que tu n'avais pas d'erreur au début, et dans le form load le try catch est obligatoire, il y a un "bug" qui fait qu'il inhibe les erreurs
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  17. #17
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 121
    Points : 77
    Points
    77
    Par défaut
    Merci Pol63

    tous les autres Form_load avec Try sauf ceci c'est pour cela que je n'ai pas d'erreur. Comme je suis bête, comment j'ai oublier ça.

    merci encore Pol63

  18. #18
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Citation Envoyé par JetLibre Voir le message
    si c'est possible une solution de rendre la 3 colonne invisible pour l'utilisateur.
    En mettant la propriété Visible de la colonne a False
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  19. #19
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 121
    Points : 77
    Points
    77
    Par défaut
    En mettant la propriété Visible de la colonne a False
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Cn.Open() 'Ouvrir la connection
            '-----------------------------------------------------------------
            Rq = "SELECT Grades.TypesGrades, COUNT(TPersonnels.CIN) FROM TPersonnels INNER JOIN Grades ON TPersonnels.CodeGrades = Grades.CodeGrades GROUP BY Grades.TypesGrades"
            Cmd.CommandText = Rq
            Cmd.Connection = Cn
            Dr = Cmd.ExecuteReader
            Dt.Load(Dr)
            Me.DG1.DataSource = Dt   'Afficher la resultat de la requette dans DG1
            Me.DG1.Columns(0).HeaderText = "Grade"    'la première colonne qui s'affiche
            Me.DG1.Columns(1).HeaderText = "Total"     'la deuxième colonne qui s'affiche
            Me.DG1.Columns(2).HeaderText = "Code Grade"     'la troisième colonne qui doit être invisible
            Dr.Close()
    la propriété visible est celle de tous la DataGrid

  20. #20
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    tu as essayé Me.DG1.Columns(2).Visible = False ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. Group by et order by
    Par LebronPA dans le forum Requêtes
    Réponses: 5
    Dernier message: 03/06/2009, 12h36
  2. Requête linq group by et order by
    Par LebronPA dans le forum Linq
    Réponses: 0
    Dernier message: 03/06/2009, 10h44
  3. [SQL] group by et order by dans la même requête ?
    Par thomfort dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/08/2007, 22h31
  4. Distinct, group by et order by
    Par gloubi dans le forum Langage SQL
    Réponses: 8
    Dernier message: 27/11/2006, 16h53
  5. [SQL] Jointure,Group BY et ORDER BY COUNT qui marche pas
    Par Stef784ever dans le forum Langage SQL
    Réponses: 8
    Dernier message: 17/08/2005, 12h28

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