Grouping Prinzip

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Haudruferzappeltnoch.

    Grouping Prinzip

    Hallo,

    ist das hier vom Prinzip schon richtig?

    VB.NET-Quellcode

    1. Dim query = DS1.dttest.GroupBy(Function(x) x.Gruppenname)
    2. For each result in query
    3. DS1.dtGruppenergebnis.AdddtGruppenergebnisRow(False, result.Key, result.Max(Function(x) x.wert), result.Sum(Function(x) x.wert), result(0).Ort)
    4. Next

    wobei result(0).Ort innerhalb der Gruppe gleich bleibt. Das wäre ein Punkt, der wäre in Sql anders gehandhabt, daher habe ich noch meine Zweifel

    Viele Grüße
    jo, sieht richtig aus.
    Jo, und .Net kann halt Sachen, die Sql nicht kann :D .

    .Net gruppiert halt wirklich, und du erhälst aus einer Liste viele Listen, nämlich eine Liste von Listen, und diese Unter-Listen sind jeweils eine Gruppe.

    Sql hingegen muss die UnterListen iwie zusammen-manschen ("Aggregate bilden"), weil es kann ja nur eine Liste ausgeben.

    Also in Sql erhälst du beim Gruppieren eine Liste mit Zusammenfassungen der Gruppen.

    In .Net erhälst du die Liste der Gruppen selbst.
    Du hast eine Menge von dttest. Diese werden in Gruppen sortiert, wobei jede Gruppe als Key einen eigenen Gruppennamen hat.
    Und Du fügst für jede Gruppe folgendes In Deine DataTable ein:
    • ein False
    • den Namen der Gruppe
    • den Maximalwert für wert innerhalb der Mitglieder innerhalb der aktuellen Gruppe
    • die Summe der wert-Werte innerhalb der aktuellen Gruppe
    • den Ort des ersten Gruppenmitglieds
    Wenn das das ist, was Du willst, dann ok. Aber was meinst Du mit:

    Haudruferzappeltnoch schrieb:

    ist das hier vom Prinzip schon richtig?

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hmm was meine ich "vom Prinzip her"?

    Also in Sql hätte ich die Tabelle dttest und dtGruppenergebnis wäre das resultset
    Select false as Checkbox, Name, max(wert) as Höchste, sum(wert) as Summe, Ort from dttest Group By Name, Ort
    wenn noch mehr Konstanten innerhalb einer Gruppe wären, die man sehen will, müssten diese mit in den Key oder als Aggregat in den Select

    Das meine ich quasi, ob der Code da den Kern trifft oder ob man das einfacher haben kann.

    Also ja aus .Net Sicht schöner, aus Sql Sicht mehr Arbeit.
    Wenn man in Sql einfach nicht gruppiert, hat man ja auch so eine Zuordnung, da fällt dann nur der objektorientierte Charakter weg.