У меня есть таблица в таблице MSSQL, которая содержит данные об использовании.Для отчета мне нужно загружать только последнюю запись каждого года за последние 10 лет.
Пример
ID | Hits | GeneratedAt
1 | 12 | 20171231
2 | 35 | 20161231
3 | 5 | 20151230
4 | 10 | 20141231
Есть ли способ получить эти значения с помощью одного linqзапросы или я могу как-то объединить несколько запросов linq?
Идею, которую я придумал, искал 31 декабря, но это создаст проблемы, потому что по какой-либо причине нет записи на эту дату.Вместо этого запрос должен загрузить последний доступный день (как в ID 3).
private static IQueryable<Usage> GetYearValues(IQueryable<Usage> queryable)
{
var firstYear = DateTime.Now.AddYears(-10);
var yInfosArray = queryable
.Where(
s.GeneratedAt.Year >= firstYear.Year
&& s.GeneratedAt.Month == 12
&& s.GeneratedAt.Day == 31 || s.GeneratedAt >= today
)
.OrderByDescending(s => s.GeneratedAt);
return yInfosArray;
}