var q = from t2 in
(
from t1 in table1
where t1.ID == 19 && t1.ReceivedDate >= new DateTime(2011, 4, 1)
&& t1.ReceivedDate <= new DateTime(2011, 4, 30)
select new
{
CurrentValue = t1.CurrentValue,
Week = (t1.ReceivedDate.Day - 1
+ (int)t1.ReceivedDate.AddDays(1
- t1.ReceivedDate.Day).DayOfWeek) / 7 + 1
}
)
group t2 by t2.Week into w
orderby w.Key
select new
{
Average = w.Average(t2 => t2.CurrentValue),
Week = w.Key
};