Daten gruppieren
-
Hallo,
ich möchte meine Daten quartalsbezogen ausgeben.
Es handelt sich dabei um Anlieferungen von Lieferanten, wo ich nur die einzenen Zeilen als Summe für jedes Quartal darstellen möchte.Im Datagrid sehen meine Daten aktuell so aus:
Lieferant | Lieferdatum | Quartal
Haller | 20.01.2018 | 1
Haller | 12.02.2018 | 1
Haller | 16.03.2018 | 1
Haller | 05.05.2018 | 2
Weber | 18.01.2018 | 1
Haller | 01.08.2018 | 3
Weber | 22.12.2018 | 4
...Die Liste sollte am Ende so aussehen:
Lieferant | 1. Quartal | 2. Quartal | 3. Quartal | 4. Quartal | Gesamt
Haller | 3 | 1 | 1 | 0 | 5
Weber | 1 | 0 | 0 | 1 | 2Kann mir bitte jemand einen Tipps geben, wie ich entsprechend gruppieren bzw. aufsummieren muss??
Danke!
Hier noch meine Abfrage:
var qry = (from w in ctx.tblanlieferung orderby w.anlieferungDatum descending select new Anlieferung { EkId = (int)w.bestellungen_ekId, LieferantName = w.lieferantName, Anlieferdatum = w.weDatum, Quartal = wquartal }).OrderByDescending(x => x.EkId ).ThenByDescending(y => y.LieferantName); return qry.ToList();
-
Ich habe nun folgende Abfrage gemacht.
Weshalb erhalte ich zu den Quartalen, also in der Abfrage .Count keine Zahlen, sondern nur 0?var query = liste .Where(y => y.anlieferungDatum.ToString().Contains(sJahr)) .GroupBy(c => new { Lieferant = c.LieferantName }) .Select(g => new { Lieferant = g.Key.Lieferant, Erstes = g.Where(c => c.Quartal == 1).Count(), Zweites = g.Where(c => c.Quartal == 2).Count(), Drittes = g.Where(c => c.Quartal == 3).Count(), Viertes = g.Where(c => c.Quartal == 4).Count(), Gesamt = g.Where(c => c.Lieferdatum.Month != 0).Count() });
-
Durch das
GroupBy
sind die Informationen über die einzelnen Zeilen nicht mehr vorhanden. Du mußt also jeweils eigeneSELECT
-Abfragen stattdessen durchführen.