

Sql De Distinc Kullanıcam Ama Diğer Sutunlarda Nasıl Gelecek ?
-
Merhaba kolay gelsin,
Malesef sorumun cevabını bulamadım. Googleye düzgün soramadım bir türlü.
Şimdi benim 10 kaydım var her biri 5 sutunlu olsun.
Bir kolon tekrar ediyor bu kolonda tekrar edenlerden en yeni olan bir satırı alacağım.
Onun için startDate ye göre orderby ile sıraladım şimdi yapmam gereken id si tekrar edenlerden ilkini almak.
Bunun için distinc var ama, Select(x=>x.Id)Distinc() deyince adece id leri getiriyor.
Ama benim bütün kolonlara ihtiyacım vaer.
Hepsini select içine yazıp distincin hepsine göre sıralaması aşırı saçma geliyor.
Anlamamışta olabilirim.
Kullanacağım şey istediğim koşula göre satırları teke düşürmeli.
Nedir bunun yolu ?
zeybekustasi tarafından 21/Eyl/15 15:32 tarihinde düzenlenmiştir -
var distinct = ProductList.Distinct();
böyle olabilirmi acaba ?
-
LuCiFeR bunu yazdı
var distinct = ProductList.Distinct();
böyle olabilirmi acaba ?
Şuan hangi kolona göre listeleyecek ki ?
ProductList.Distinct(Id); dense id si aynı olanların ilkini alsa tamam :)
Tabi böyle bir kullanım yok ef de
1 a
1 b
2 a
2 c
varsa sonuç:
1a
2a
Olmalı. id si aynı olanların ilkini alan bir linq sorgusu gerekiyor.
zeybekustasi tarafından 21/Eyl/15 15:43 tarihinde düzenlenmiştir -
zamanında kullanmısım eski projelrden arayıp buldum denemedım yanı muhtemelen ıdlere gore tekilleştiriyordur diye düşünüyorum sen denedınmı ?
-
Şöyle hallettim,
Önce sıraladım.
Sonra sıraladığım tabloda distinc yaptım kriter olan id leri listeye attım. Artık her id den bir tane var.
Sonra o id ile birlikte sıralı tabloda where kodu içinde şart yazıp firstalldefault ile ilkini aldım hallettim.
Evet anlamadınız biliyorum :D
Buyrun,
list = list.OrderBy(x => x.StartDate); var IdList = list.Select(x => x.EmployeeId).Distinct().ToList(); List vmList=new List(); foreach (var x in IdList) { var item = list.Where(x => x.EmployeeId == x).FirstOrDefault(); vmList.Add(item); }
zeybekustasi tarafından 21/Eyl/15 16:28 tarihinde düzenlenmiştir -
list = list.GroupBy(g => g.EmployeeId) .Select(s => s.First()) .ToList();Buda unbalanced hocanın güzel bir çözümü :) Bunu kullanıyorum.