group by w linq

Odpowiedz Nowy wątek
2014-12-28 17:27
0

Witam serdecznie!
Mam problem aby prawidłowo przenieść zapytanie z MYSSQL do LINQ. W pierwszej kolejności powinno grupować po dacie, a następnie po nazwisku. O to screen jak grupuje (odwrotnie):
http://prntscr.com/5luyzp

A o to zapytanie, które zmajstrowałem:

var info = (from x in db.PS_RCP_Zapisy
                        join y in db.PS_RCP_ZapisyHistoria on x.Zap_ZaHId equals y.ZaH_Id
                        join z in db.PS_RCP_Czynnosci on y.ZaH_CznId equals z.Czn_Id
                        join v in db.PrcKarty on y.ZaH_PrcNumer equals v.Prc_GIDNumer
                        where y.ZaH_DataAktualizacji >= data_od && y.ZaH_DataAktualizacji <= data_do && x.Zap_SkasowanyPrzez == "0" && x.Zap_Zatwierdzil == 1 && z.Czn_Dzial.StartsWith(dzial) && z.Czn_Id >= czynnosc_id && z.Czn_Id <= czynnosc_id2
                        orderby y.ZaH_Data
                        group y by new { y.ZaH_Data, v.Prc_Akronim } into g
                        select new
                        {
                            czynnosc = g.Key,
                            Sum = g.Sum(y => y.ZaH_Ilosc),
                            Sum2 = g.Sum(y => y.ZaH_Minuty)
                        });

Kombinuję i nie mogę uzyskać odpowiedniego efektu. Proszę o pomoc

Pozostało 580 znaków

2014-12-28 21:53
0

Prawdopodobnie nie chodzi ci o kolejność grupowania a sortowania zgrupowanych wyników ordeby się kłania


szogun

Pozostało 580 znaków

2014-12-28 22:02
0

to jeszcze pokaż screena jak powinien wynik wyglądać.

Pozostało 580 znaków

2014-12-29 00:25
1

a gdyby tak dodac:

...
group y by new { y.ZaH_Data, v.Prc_Akronim } into g
orderby g.Key.ZaH_Data  //wstawka
select new
...

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0