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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| ' Creation de la table qui va contenir toutes les Conversations
Dim dtCommunications As New DataTable()
dtCommunications.Columns.Add("CommunicationID", GetType(String))
dtCommunications.Columns.Add("PIN", GetType(String))
dtCommunications.Columns.Add("Date Comm", GetType(Date))
dtCommunications.Columns.Add("PJ Image", GetType(Integer))
dtCommunications.Columns.Add("PJ Audio", GetType(Integer))
Dim row As DataRow
' Adding this new line to the Datatable
row = dtCommunications.NewRow()
row("CommunicationID") = "12345"
row("PIN") = "DEF"
row("Date Comm") = "2020/01/01 12:00:00"
row("PJ Image") = 1
row("PJ Audio") = 0
dtCommunications.Rows.Add(row)
row = dtCommunications.NewRow()
row("CommunicationID") = "12345"
row("PIN") = "DEF"
row("Date Comm") = "2020/01/01 12:05:00"
row("PJ Image") = 0
row("PJ Audio") = 0
dtCommunications.Rows.Add(row)
row = dtCommunications.NewRow()
row("CommunicationID") = "12345"
row("PIN") = "DEF"
row("Date Comm") = "2020/01/01 12:10:00"
row("PJ Image") = 1
row("PJ Audio") = 1
dtCommunications.Rows.Add(row)
row = dtCommunications.NewRow()
row("CommunicationID") = "12345"
row("PIN") = "ABC"
row("Date Comm") = "2020/01/01 12:10:00"
row("PJ Image") = 0
row("PJ Audio") = 1
dtCommunications.Rows.Add(row)
row = dtCommunications.NewRow()
row("CommunicationID") = "12345"
row("PIN") = "ABC"
row("Date Comm") = "2020/01/01 12:15:00"
row("PJ Image") = 1
row("PJ Audio") = 3
dtCommunications.Rows.Add(row)
Dim query = From row2 In dtCommunications.AsEnumerable()
Group row2 By Key = New With {
.CommunicationID = row2.Field(Of String)("CommunicationID"),
.PIN = row2.Field(Of String)("PIN")
} Into Group
Select New With {
.CommunicationID = Key.CommunicationID,
.PIN = Key.PIN,
.MinDateComm = Group.Min(Function(r) r.Field(Of Date)("Date Comm")),
.MaxDateComm = Group.Max(Function(r) r.Field(Of Date)("Date Comm")),
.SumPJImage = Group.Sum(Function(r) r.Field(Of Integer)("PJ Image")),
.SumPJAudio = Group.Sum(Function(r) r.Field(Of Integer)("PJ Audio")),
.RecordCount = Group.Count()
}
' Créez une nouvelle DataTable pour stocker les résultats.
Dim dtResult As New DataTable()
dtResult.Columns.Add("CommunicationID", GetType(String))
dtResult.Columns.Add("PIN", GetType(String))
dtResult.Columns.Add("MinDateComm", GetType(Date))
dtResult.Columns.Add("MaxDateComm", GetType(Date))
dtResult.Columns.Add("SumPJImage", GetType(Integer))
dtResult.Columns.Add("SumPJAudio", GetType(Integer))
dtResult.Columns.Add("RecordCount", GetType(Integer))
' Remplissez la DataTable résultante avec les données du résultat de la requête LINQ.
For Each result In query
dtResult.Rows.Add(result.CommunicationID, result.PIN, result.MinDateComm, result.MaxDateComm, result.SumPJImage, result.SumPJAudio, result.RecordCount)
Next |
Partager