Benutzer mit den meisten Antworten
Select mit GroupBy und Count

Frage
-
Hallo Experten,
ich habe eine Tabelle die unter anderen folgende Spalten enthält:
DateTime von int StatistikSchemaDetailID int KlientID
Ich möchte eine Liste mit Anzal Klienten pro Monat (Jahr und Monat) und StatistikSchemaDetailID bekommen, also so:
Jahr Monat Statistik Anzahl_Klienten
2014 1 1 30
2014 1 2 5
2014 1 3 15
2014 2 1 4
2014 2 2 1
2014 2 2 20
Folgendes habe ich versucht, ich bekomme hier aber einen Kompilierfehler bei --> Count(s.Key.KlientID).
var anzklimon = vwstatTSs .GroupBy(s => new { s.Von.Year, s.Von.Month, s.StatistikSchemaDetailID, s.KlientID }) .Select(s => new { Jahr = s.Key.Year, Monat = s.Key.Month, StatID = s.Key.StatistikSchemaDetailID, AnzKlienten = Count(s.Key.KlientID)}) .ToList();
Wie müsste die Abfrage aussehen, damit ich das gewünschte Ergebnis erhalte?
Grüße
Siegfried
- Bearbeitet Siegfried Reichmann Donnerstag, 13. November 2014 19:48
- Verschoben Stefan FalzModerator Donnerstag, 13. November 2014 20:26 C# Frage, daher ins passende Forum verschoben
Antworten
-
Hallo Siegfried,
schau dir mal den Link an. Da wird erklärt wie man Group by und Count verwenden kann. (s.Count() sollte da passen)
MFG
Björn
- Bearbeitet Palin Donnerstag, 13. November 2014 20:38
- Als Antwort markiert Siegfried Reichmann Donnerstag, 13. November 2014 21:20
-
Hallo Björn,
s.Count() hatte ich schon probiert, hat mir aber jeden einzelnen Klienten gebracht. Ich habe es jetzt noch einmal versucht, und die KlientID vom GroupBy herausgenommen. Jetzt bringt mir s.Count() die korrekte Anzahl der Klienten.
var anzklimon = vwstatTSs .GroupBy(s => new { s.Von.Year, s.Von.Month, s.StatistikSchemaDetailID }) .Select(s => new { Jahr = s.Key.Year, Monat = s.Key.Month, StatID = s.Key.StatistikSchemaDetailID, AnzKlienten = s.Count() }) .ToList();
So einfach ist es wenn man es weiß. Vielen Dank für Deinen Hinweis.
Gruß
Siegfried
- Als Antwort markiert Siegfried Reichmann Donnerstag, 13. November 2014 21:19
Alle Antworten
-
Folgendes habe ich versucht, ich bekomme hier aber einen Kompilierfehler bei --> s.Count(s.Key.KlientID).
Hallo Siegfried,
erstens ist das rein .NET / Linq und hat zunächst mal nichts mit dem SQL Server, dem Thema dieses Forums, zu tun.
Dann wäre es hilfreich, wenn Du uns die exakte Fehlermeldung mitteilen könntest.
Olaf Helper
[ Blog] [ Xing] [ MVP] -
Hallo Olaf,
tut mir leid, wenn es das falsche Forum ist, vielleicht kann jemand den Beitrag an den richtigen Ort verschieben.
Die Fehlermeldung lautet:
The name 'Count' does not exist in the current context
Ich weiß lediglich nicht wie Count hier anzuwenden ist.
Siegfried
- Bearbeitet Siegfried Reichmann Donnerstag, 13. November 2014 19:45
-
Hallo Siegfried,
schau dir mal den Link an. Da wird erklärt wie man Group by und Count verwenden kann. (s.Count() sollte da passen)
MFG
Björn
- Bearbeitet Palin Donnerstag, 13. November 2014 20:38
- Als Antwort markiert Siegfried Reichmann Donnerstag, 13. November 2014 21:20
-
Hallo Björn,
s.Count() hatte ich schon probiert, hat mir aber jeden einzelnen Klienten gebracht. Ich habe es jetzt noch einmal versucht, und die KlientID vom GroupBy herausgenommen. Jetzt bringt mir s.Count() die korrekte Anzahl der Klienten.
var anzklimon = vwstatTSs .GroupBy(s => new { s.Von.Year, s.Von.Month, s.StatistikSchemaDetailID }) .Select(s => new { Jahr = s.Key.Year, Monat = s.Key.Month, StatID = s.Key.StatistikSchemaDetailID, AnzKlienten = s.Count() }) .ToList();
So einfach ist es wenn man es weiß. Vielen Dank für Deinen Hinweis.
Gruß
Siegfried
- Als Antwort markiert Siegfried Reichmann Donnerstag, 13. November 2014 21:19