报表中年份是变量怎么查询

因为数据量大,查询时特别慢或者出不来,所以改成每年一张表,怎么实现查询不同年份报表的功能?或者是有没有办法实现数据量大查询慢的问题?跪求!111.jpg

FineReport 茶香不加糖 发布于 2022-3-25 09:12
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-3-25 09:15(编辑于 2022-3-25 09:16)

假设你的使用年份控件 控件名为Year_

则SQL为:SELECT * FROM p005_electricXXXXXXX_${Year_} WHERE XXXX

image.png

  • 茶香不加糖 茶香不加糖(提问者) 开始时间和结束时间,这样的时间区间怎么弄呀?可以查看一段时间的数据,我现在这么弄得 where 1=1 ${if(len(开始时间)=0,\"\",\" and Resulttime>=\'\"+开始时间+\"\'\")} ${if(len(结束时间)=0,\"\",\" and Resulttime<=\'\"+结束时间+\"\'\")}
    2022-03-28 15:48 
  • Z4u3z1 Z4u3z1 回复 茶香不加糖(提问者) 如果跨表了就想办法用 union 连接
    2022-03-28 16:19 
  • 茶香不加糖 茶香不加糖(提问者) 回复 Z4u3z1 如果是在本年度的这个表里面,我想这查询这一段时间的数据,这样可以吗 select * from p005_electrictoolboltresult_${year} where 1=1 ${if(len(开始时间)=0,\"\",\" and Resulttime>=\'\"+开始时间+\"\'\")} ${if(len(结束时间)=0,\"\",\" and Resulttime<=\'\"+结束时间+\"\'\")} order by Resulttime desc
    2022-03-28 16:27 
  • Z4u3z1 Z4u3z1 回复 茶香不加糖(提问者) 粗看之下 没什么问题(注意数据库中Resulttime与时间控件的格式一致)。把=0改成==0
    2022-03-28 16:34 
最佳回答
0
may2meLv6初级互助
发布于2022-3-25 11:02

动态查询不同数据表,可以在数据集中添加参数控制

大数据量查询慢的问题,如果是分页报表,可以开启行式引擎

image.png

最佳回答
0
CD20160914Lv8专家互助
发布于2022-3-25 11:08

1、做分区表。可能按每天分区。。。现在只要支持分区的数据库压缩比都很高的(后面查询只要把对应的日期传入就行了。表名不变)

2、想要快除了数据库优化外。还要看你的服务器硬件配置,网络等。当然如果只是为了做报表或者bi展示数据。。可以用etl工具把表弄成t+1的数据。单独存在报表的数据库服务器。

3、我以前用DB2数据库,用的列式存储(这种存储方式,查询就很快,当然了DB2的服务器配置也非常的高36核CPU,512GB内存)查询某一个表7.8亿条数据。。用计数这个表有多少行我是直接count(*)  显示7.8亿。。差不多在5秒内就出来了。。

4、有一个报表逻辑那是变态的复杂,为了5列数据。。整整写了4600多行的sql..DB2数据库居然能够查询出来。还展示出来了。。。。

  • 3关注人数
  • 333浏览人数
  • 最后回答于:2022-3-25 11:08
    请选择关闭问题的原因
    确定 取消
    返回顶部