请教考勤明细的数据循环显示的问题

需求是统计公司所有人员一个月里每一天考勤明细记录,现在的做法是先把一个月每一天通过range()函数循环出来,然后再数据库搜索人员名单,但是这样就造成数据重复搜索效率低下的问题。

比如一个月有30天,那先显示4月1日至4月30日,然后4月1日后面显示500人的名单,4月2日后面显示500人名单,以此类推显示到4月30日,这样会出现需要执行30次在数据库中查询全员名单的搜索,所以第一次打开显示比较慢。

     

现在希望高手帮忙看看有没有只要查询一次名单的解决方案

显示字段

序号   姓名     日期

1        张三    2019-04-30

2       李四    2019-04-30

3       王五    2019-04-30

4       张三    2019-04-29

5       李四    2019-04-29

6       王五    2019-04-29

……    

100    张三    2019-04-01

101     李四    2019-04-01

102     王五    2019-04-01


FineReport miefeng 发布于 2019-4-25 09:32 (编辑于 2019-4-25 19:41)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
axingLv6专家互助
发布于2019-4-25 10:30

select * from table where 日期 between '${开始日期}' and '${结束日期}'

  • miefeng miefeng(提问者) 1、保存人员名单的表(表A)只有ID、姓名、工号这些基本信息,不存在日期(考勤明细表是独立的表) 2、报表最左边是显示全公司所有人员名单,然后跟上一个月的每一天(这个通过range()函数循环显示出来) 所以您的这个语句不适合,还是谢谢。
    2019-04-25 10:47 
  • luozhiwei luozhiwei 回复 miefeng(提问者) 没有日期字段你们是怎么保存每天的数据,怎么区分开哪天是哪天的,茫然
    2019-04-25 14:54 
  • miefeng miefeng(提问者) 回复 luozhiwei 有专门的一张用来记录考勤明细的表,表B,这个里面有关联用的ID,有日期、时间等等
    2019-04-25 16:19 
  • miefeng miefeng(提问者) 表B里面可能出现的是周末没有任何人员的明细(但是在查询明细的时候需要把这两天的数据显示出来,打卡信息为空就好),如果直接调用表B的数据,那只要数据是空的就显示不出来
    2019-04-25 16:21 
  • axing axing 回复 miefeng(提问者) 关联一下表查询就好了
    2019-04-25 17:14 
  • 2关注人数
  • 960浏览人数
  • 最后回答于:2019-4-25 19:41
    请选择关闭问题的原因
    确定 取消
    返回顶部