填报报表功能否实现我所需要的功能

我有一组每半小时更新的数据存储在一个表格中,现在的想法是通过一个报表将数据的最大值和最小值以及平均值提取出来利用填报功能填到一个新表中,这样就将数据量减少了48倍,在不需要太高数据精度的情况下提高报表运行速度。这个填报需要每天更新一组数据,如何设置才能自动每天更新每天自动填报?现有的填报功能是否可以满足以上功能?

背景是我的底层数据集每半小时增加2665行数据,这样设计可以在时间范围较大的情况下提高报表查询响应速度。

FineReport hotiger 发布于 2020-2-14 09:26
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
ooshanghaiLv5初级互助
发布于2020-2-14 10:05(编辑于 2020-2-14 10:33)

填报是为了实现无规则的人工数据实现数据规范化运行,你这个需求不适合用填报。

用存储过程来实现不是更好吗,存储过程的定时任务直接把表处理好后放到另一个表里。


看下你用的DBMS数据库是不是支持存储过程或者函数都可以实现。


image.png

  • hotiger hotiger(提问者) 我的数据库是mysql,版本5.5,您说的存储过程怎么实现?
    2020-02-14 10:18 
  • ooshanghai ooshanghai 回复 hotiger(提问者) 给你写了个例子,看下上面
    2020-02-14 10:33 
  • ooshanghai ooshanghai 回复 hotiger(提问者) CREATE PROCEDURE createDate() begin declare indexdate DATE; set indexdate = DATE(\'2010-01-01\'); while indexdate <= DATE(\'2050-01-01\') do insert into bi_dimdate(isdate) values (indexdate); set indexdate = ADDDATE(indexdate,1); end while; end; 比如新表名为 tbl_new3values(id integer, insertdate datetime , vmax decimal , vmin decimal , vavg decimal) 老的表格为 tbl_old(字段如上一致) CREATE PROCEDURE InsertPer30Min() begin Insert into tbl_new3values(id ,insertdate , vmax , vmin , vavg) Select …. From tbl_old end; InsertPer30Min设置每隔半小时执行一次,具体百度下mysql任务设置
    2020-02-14 10:33 
  • hotiger hotiger(提问者) 回复 ooshanghai 大佬,我仔细学习了一下,这个里面select的旧表里面没有现成的最大值和最小值这个还可以增加计算过程吗?这个涉及的知识有点多,我应用起来有点难,我正在试验定时调度里面的方法,那个好像有点眉目了!
    2020-02-14 16:49 
  • ooshanghai ooshanghai 回复 hotiger(提问者) 在任务里有sql入门,你得看看, min() , MAX() ^
    2020-02-14 17:53 
最佳回答
0
xiaomiliLv6初级互助
发布于2020-2-14 09:30

按你说的应该也可以;实施起来也不算复杂;

  • hotiger hotiger(提问者) 能不能麻烦您找一下教程之类的页面给我发个链接学习学习啊!
    2020-02-14 09:56 
  • xiaomili xiaomili 回复 hotiger(提问者) 参照一下这个文档,看一下这个章节的内容,先熟悉一下,应该可以做出来的 https://help.finereport.com/doc-view-687.html
    2020-02-14 15:24 
最佳回答
0
孤陌Lv6资深互助
发布于2020-2-14 10:29

用定时调度功能里的定时填报就就可以了 

  • 4关注人数
  • 353浏览人数
  • 最后回答于:2020-2-14 10:33
    请选择关闭问题的原因
    确定 取消
    返回顶部