LINQPad – group by ile pivot

      Yorum yok LINQPad – group by ile pivot

yakınen bildiğimiz t-sql groupby sorgu örneği

select 
  C.CategoryName,Count(EC.CategoryId) Adet
from EntryCategories EC
join Categories C on EC.CategpryID = C.Id
group by
  C.CategoryName

bunu linq ile uyarlayıp alıp biraz değiştirince çok da güzel pivot oluyor

from p in db.EntryCategories
where p.Entry.EntryTime.Year == 2010
group p by p.Category.CategoryName into g
select new
{
  Kategori = g.Key,
  Ocak = g.Where(t => t.Entry.EntryTime.Month == 1).Count(),
  Subat = g.Where(t => t.Entry.EntryTime.Month == 2).Count(),
  Mart = g.Where(t => t.Entry.EntryTime.Month == 3).Count(),
  Nisan = g.Where(t => t.Entry.EntryTime.Month == 4).Count(),
  Mayis = g.Where(t => t.Entry.EntryTime.Month == 5).Count(),
  Haziran = g.Where(t => t.Entry.EntryTime.Month == 6).Count(),
  Temmuz = g.Where(t => t.Entry.EntryTime.Month == 7).Count(),
  Agustos = g.Where(t => t.Entry.EntryTime.Month == 8).Count(),
  Eylul = g.Where(t => t.Entry.EntryTime.Month == 9).Count(),
  Ekim = g.Where(t => t.Entry.EntryTime.Month == 10).Count(),
  Kasim = g.Where(t => t.Entry.EntryTime.Month == 11).Count(),
  Aralik = g.Where(t => t.Entry.EntryTime.Month == 12).Count(),
}.Dump();

 

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir