GRUPPE VON in der datatable auf zwei Spalten mit der Summe der Dritten Spalte ist die Verwendung von LINQ
Ich bin auf der Suche für eine LINQ-Abfrage, für die input-und output-Datentabellen sind als unten -
Name Code count
-------------------------
User1 q1 2
user1 q2 2
user2 q2 1
user2 q3 3
user1 q1 2
Name Code Count
-----------------------
User1 | q1 | 4
User1 | q2 | 2
User1 | q3 | 0
User2 | q1 | 0
User2 | q2 | 1
User2 | q3 | 3
d.h. ich möchte die Summe der Anzahl für den individuellen Satz von codes für jeden Namen in der Ergebnis-Tabelle zeigen (user1, q3,0), weil es keine Aufzeichnungen von q3 für user1 in input datatable, Bitte helfen Sie in dieser Hinsicht, nochmals vielen Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollte dies funktionieren:
Bearbeiten: wenn Sie stattdessen möchten, ändern Sie die original-Tabelle und die Summe der Anzahl pro name-code-Gruppe, die diesen Ansatz verwenden, bei dem mit einem
Dictionary
als lookup:Aber ich weiß nicht, warum Ihr Ergebnis-Tabelle enthält diese Zeile:
Gibt es no-name-code-Kombination User1+q3 in der ursprünglichen Tabelle.
Count
ist nicht einint
Spalte aber (denke ich) eine string-Spalte. Ändern.code
. Wenn es Int64, dann kann man einfach casten zu lange:r => r.Field<long>("Code")
Convert.ToInt64(r["code"]))
falsch sein sollte, da es enthält Werte wie"q1"
, meinst ducount
statt? So ist es ein numerischer Wert ist, dann sollten Sie Bearbeiten Ihre Frage und die korrekte sample-Daten. Sie müssen die maximum-code aller Namen-Gruppen, die ersten, aber die maximale code kann nur calculcated wenn es einem numerischen Feld.Ich denke, hier ist, was Sie suchen:
Oder fast die gleichen, aber Sie können es auch tun: