Bonjour à tous...
J'ai besoin d'une aide sur une requête de doublon. J'ai utilisé l'IA mais le code généré me laisse perplexe.

Voici l'exercice que je cherche à résoudre : soit une table Élèves comportant 3 colonnes: Nom, Matières et Notes. Dans la colonne Notes nous avons ces caractères qui représentent les notes{A, A, B, C, A, C, B, D, B, C, A, A, B, C, A, B}. Ecrire une requête en vb net qui déterminera le nombre exact d'élèves ayant des notes pour chacun des types A, B, C et D puis l'afficher dans une datagridview en créant une quatrième colonne Nombre.
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
29
30
31
32
33
34
35
36
37
38
' Assurez-vous d'avoir une base de données avec une table Élèves contenant les colonnes Nom, Matières et Notes
Dim dt As New DataTable()
dt.Columns.Add("Nom", GetType(String))
dt.Columns.Add("Matières", GetType(String))
dt.Columns.Add("Notes", GetType(String))
 
' Ajouter des données pour la démonstration
Dim noms() As String = {"Alice", "Bob", "Charlie", "David", "Eve", "Frank", "Grace", "Hannah", "Ivy", "Jack", "Kathy", "Leo", "Mona", "Nina", "Oscar", "Paul"}
Dim notes() As String = {"A", "A", "B", "C", "A", "C", "B", "D", "B", "C", "A", "A", "B", "C", "A", "B"}
 
For i As Integer = 0 To noms.Length - 1
    dt.Rows.Add(noms(i), "Matière" & (i + 1), notes(i))
Next
 
' Compter les occurrences de chaque note
Dim query = From row In dt.AsEnumerable()
            Group row By note = row.Field(Of String)("Notes") Into Group
            Select New With {
                .Note = note,
                .Nombre = Group.Count()
            }
 
' Créer un DataTable pour afficher les résultats
Dim resultTable As New DataTable()
resultTable.Columns.Add("Note", GetType(String))
resultTable.Columns.Add("Nombre", GetType(Integer))
 
For Each item In query
    resultTable.Rows.Add(item.Note, item.Nombre)
Next
 
' Afficher les résultats dans un DataGridView
Dim dataGridView As New DataGridView()
dataGridView.DataSource = resultTable
 
' Ajouter le DataGridView à votre formulaire
Me.Controls.Add(dataGridView)
dataGridView.Dock = DockStyle.Fill
Je comprends le reste du code mais la ligne compter les occurrences de chaque note, c'est à dire combien d'élèves ont pour note A par exemple je n'arrive pas à cerner.

Besoin d'éclaircissement svp.

Merci