Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

LINQ get last 12 months

how would i pull the

last 12(months) records filtered by ServiceId, ordered by most recent

using linq given this db table data:

 - Date         ServiceId     Views     Clicks
 - 2009-03-01       3         88107     244223
 - 2009-03-01       5         41563     94770
 - 2009-03-01       7         24165     45378
 - 2009-03-01       8         16415     24311
 - 2009-03-01       4         50341     127114
 - 2009-04-01       3         70646     211999
 - 2009-04-01       5         40380     102241
 - 2009-04-01       7         23905     40768
 - 2009-04-01       8         18996     29220
 - 2009-04-01       4         45685     112635
 - 2009-05-01       3         81044     215753
 - 2009-05-01       5         46273     121343
 - 2009-05-01       7         25744     41578
 - 2009-05-01       8         21122     32607
 - 2009-05-01       4         54349     126914
 - 2009-06-01       3         74045     201224
 - 2009-07-01       3         60558     175043
 - 2009-07-01       5         28802     69091
 - 2009-07-01       7         16250     33784
 - 2009-07-01       4         36265     88727
 - 2009-08-01       3         59030     170027
 - 2009-08-01       5         27923     63875
 - ... 
like image 964
ShaneKm Avatar asked Feb 25 '23 04:02

ShaneKm


1 Answers

Would this help?

"someServiceId" would be the service id you want to filter on.

12 months ago from now:

from x in data
where x.Date > DateTime.Now.AddMonths(-12) && x.ServiceId == someServiceId
orderby x.Date descending
select x; 

12 months ago from most recent entry:

from x in data
let m = data.OrderByDescending(x.Date).First()
where x.Date > m.Date.AddMonths(-12) && x.ServiceId == someServiceId
orderby x.Date descending
select x; 

I haven't ran this through a compiler but hopefully it should get you in the right direction.

like image 198
TWith2Sugars Avatar answered Mar 07 '23 08:03

TWith2Sugars