62,074
社区成员
发帖
与我相关
我的任务
分享
select uid, date,sum(num) as num from table
where date >=@StartDate And date < @EndDate
group by uid,date
order by uid,date
List<Entity> list;//假定读取出来的数据集
DateTime startDay = new DateTime(Now.Year,Now.Month,1);//对应sql的@StartDate
DateTime endDay = firstDay.AddMonth(1);//对应sql的@EndDate
//读取填充list
int monthDays = (endDay - firstDay).Days;
var query = from e in list
group e by e.Uid into g
select g;
foreach(var g in query)
{
for(int i=1;i<=monthDays;i++)
{
DateTime compareDay = new DateTime(Now.Year,Now.Month,i);
Entity entity = list.Where(e=>e.Date==compareDay).FirstOrDefault();
if(entity==null)
{
list.Add(new Entity(){Uid=g.Key,Date=compareDay,Num=0});
}
}
}
//补充:如果某些人一个月内都没记录,这样是查不到的,所以如果又必须要,还需要与员工表作对比
//排序