我怎么拉
过去12个月(个月)的记录 ServiceId,按最近的顺序排序
使用linq给出这个db表数据:
- 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
- ...
答案 0 :(得分:8)
这会有帮助吗?
“someServiceId”将是您要过滤的服务ID。
12个月前从现在开始:
from x in data
where x.Date > DateTime.Now.AddMonths(-12) && x.ServiceId == someServiceId
orderby x.Date descending
select x;
12个月前从最近的条目开始:
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;
我没有通过编译器运行它,但希望它能让你朝着正确的方向前进。
答案 1 :(得分:0)
var request = DataContext.YourTable.Where(e => DateTime.Now.AddMonths(-12) < e.Date)
.Where(e => e.ServiceId == filterServiceId)
.OrderByDescending(e => e.Date)