求方法

lc12d 2013-10-12 08:49:56
数据库中记录了工人每天的计件数量,一个月中可能某些天某工人没有数量记录,如何从数据库中导出所有工人某个月各天的计件数量,没有记录的那天计件数量显示0.
...全文
160 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
完全无视我写的代码啊。。。伤心了。。。。 具体怎么显示这个就是看你想要如何显示了啊 反正就是构造成html的过程
lc12d 2013-10-12
  • 打赏
  • 举报
回复
用什么方法显示出来呢,得出一个表
webdiyer 2013-10-12
  • 打赏
  • 举报
回复
可以这样: 第一步,一次性取出所有该月该工人录入的数据,方法应该不用说了,假如结果集是List<Product> products 第二步,循环显示每天的记录,象这样: //先获取该月总天数 var days=DateTime.DaysInMonth(2013,10); for(int i=1;i<=days;i++){ //i号的件数就是 products.Where(p=>p.日期.Day==i).Sum(p=>p.件数); } ================================================================= ASP.NET MVC免费分页控件MvcPager 2.0版发布,功能更强大,欢迎使用: http://www.webdiyer.com/mvcpager/
lc12d 2013-10-12
  • 打赏
  • 举报
回复
数据库设计的时候就是简单的今天工人有数据就录入进去,工人姓名,数量,日期
  • 打赏
  • 举报
回复
当然上面两个循环效率上还可以进行优化 如 foreach(var g in query) { if(g.Value.Count<monthDays)) { for(int i=1;i<=monthDays;i++) {} } 这一段
Dotar 2013-10-12
  • 打赏
  • 举报
回复
关键看你数据库如何设计
  • 打赏
  • 举报
回复
Entity entity = list.Where(e=>e.Date==compareDay).FirstOrDefault(); 这个要改成 Entity entity = g.Value.Where(e=>e.Date==compareDay).FirstOrDefault();
  • 打赏
  • 举报
回复
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});
      }
   }
}
//补充:如果某些人一个月内都没记录,这样是查不到的,所以如果又必须要,还需要与员工表作对比
//排序

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧