Pivot linq LinqExtenions

Pivot linq LinqExtenions
2009-09-14T20:53:55+02:00
2009-09-21T13:52:00+02:00
2022-11-15T02:05:42+01:00
Papus
Sziasztok,

Amit meg kellene csinálnom de nem sikerül
Adott egy mssql tábla. 4 mező
id
Rekord_id
field_id
value

értékek

1-1-1-A
2-1-2-B
3-1-3-C
4-2-1-D
5-2-2-E
6-2-3-F

Ezt kellene megfordítanom ilyenre
1-A-B-C
2-D-E-F

Nem nagyon sikeredig ciklusokkal megcsinálni (kicsit ronda lett és nem dinamikus)

Az elforgatásban kérném a segitségeteket, vmi dynamikus megoldásra lenne szükségem.
Nem fix táblanév, nem fix mezőnév, nem fix rekordszám

(A gugliban találtam egy okosságot, mégpedig a LinqExtenions. Ha lúd, legyen kövér alapon ezt használnám, de ezt már csak suttogva jelzem)

Köszi
P
Mutasd a teljes hozzászólást!
Bocsi, de szvsz a LINQ sem tud rajtad segíteni, mert max. kereszttáblás megoldás hozható össze pivot -al, ám ismerni kell a lehetséges oszlopfőket.

Pl.:Is it possible to Pivot data using LINQ?
Kiemelés a link-ről:


ez van: CustID | OrderDate | Qty 1 | 1/1/2008 | 100 2 | 1/2/2008 | 200 1 | 2/2/2008 | 350 2 | 2/28/2008 | 221 1 | 3/12/2008 | 250 2 | 3/15/2008 | 2150 ez lehet: CustID | Jan- 2008 | Feb- 2008 | Mar - 2008 | 1 | 100 | 350 | 250 2 | 200 | 221 | 2150 itt a hónapok lesznek az oszlopfők és alattuk a kapcsolódó értékek (Qty) összesítései.
Ami létrehozta (valami ilyesmi):

List<CustData> myList = GetCustData(); var query = myList .GroupBy(c => c.CustId) .Select(g => new { CustId = g.Key, Jan = g.Where(c => c.OrderDate.Month == 1).Sum(c => c.Qty), Feb = g.Where(c => c.OrderDate.Month == 2).Sum(c => c.Qty), March = g.Where(c => c.OrderDate.Month == 3).Sum(c => c.Qty) });
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd