关于复合图形显示问题

微信图片_20230110101816.png

微信图片_20230110101848.png

做了一张客流和销售的复合图形,时间段查一个月显示没有问题,如果查一整年就报错了:SQL执行时间过长,请问一下这是什么问题?图形不能显示全年的数据?还是SQL语句问题?

FineReport ysbin 发布于 2023-1-10 10:22
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-1-10 10:23

SQL贴出来看看

  • ysbin ysbin(提问者) select tb.md,tb.mdmc,ta.rq,ta.xingqi,ta.tianqi,ta.liuru,tb.xsbs,tb.xszje from (SELECT md,rq ,xingqi ,tianqi ,liuru ,liuchu from keliu where rq>=\'${开始日期}\' and rq<=\'${结束日期}\' )ta join (select md,mdmc,rq,sum(xszje) xszje,sum(xsbs)xsbs from sale_daily where mdmc=\'${门店}\' and 1=1 ${if( len(fine_username)== 0 , \"\", \"and md in (select md from jhyb_user where name = \'\"+fine_username+\"\' ) \" )} group by md,mdmc,rq) tb on ta.md=tb.md and ta.rq=tb.rq order by rq
    2023-01-10 10:30 
  • ysbin ysbin(提问者) 感觉语句很简单的,一点不复杂,我在SQL里面执行秒出结果。
    2023-01-10 10:31 
  • Z4u3z1 Z4u3z1 回复 ysbin(提问者) select tb.md,tb.mdmc,ta.rq,ta.xingqi,ta.tianqi,ta.liuru,tb.xsbs,tb.xszje from (SELECT md,rq ,xingqi ,tianqi ,liuru ,liuchu from keliu where rq>=\'${开始日期}\' and rq<=\'${结束日期}\' ) ta inner join (select md,mdmc,rq,sum(xszje) xszje,sum(xsbs)xsbs from sale_daily where mdmc=\'${门店}\' and 1=1 ${if( len(fine_username)== 0 , \"\", \"and exists (select md from jhyb_user where sale_daily.md=jhyb_user.md name = \'\"+fine_username+\"\' ) \" )} group by md,mdmc,rq) tb on ta.md=tb.md and ta.rq=tb.rq order by rq ------试试这个 join指定连接方式为inner;把in 改成exists;最后把on用到的字段统一字符类型(比如都为字符类型)
    2023-01-10 10:35 
最佳回答
0
snrtuemcLv8专家互助
发布于2023-1-10 10:23

按这个提示修改啊

image.png

不然就的优化sql了

  • ysbin ysbin(提问者) 按这个改过了,没用,还是报这个。
    2023-01-10 10:30 
  • snrtuemc snrtuemc 回复 ysbin(提问者) 语句不复杂,数据不多,按这个插件分析下,慢在哪边,模板性能分析插件-https://help.fanruan.com/finereport/doc-view-3639.html
    2023-01-10 10:40 
最佳回答
0
就TM你叫夏洛啊Lv6中级互助
发布于2023-1-10 10:25

sql的问题,查的数可能有点多,运行时间较长

image.png

设置这个试试,建议优化你的sql

  • ysbin ysbin(提问者) select tb.md,tb.mdmc,ta.rq,ta.xingqi,ta.tianqi,ta.liuru,tb.xsbs,tb.xszje from (SELECT md,rq ,xingqi ,tianqi ,liuru ,liuchu from keliu where rq>=\'${开始日期}\' and rq<=\'${结束日期}\' )ta join (select md,mdmc,rq,sum(xszje) xszje,sum(xsbs)xsbs from sale_daily where mdmc=\'${门店}\' and 1=1 ${if( len(fine_username)== 0 , \"\", \"and md in (select md from jhyb_user where name = \'\"+fine_username+\"\' ) \" )} group by md,mdmc,rq) tb on ta.md=tb.md and ta.rq=tb.rq order by rq 我在SQL里面直接执行,秒出结果的,语句也不复杂,就一年的数据300多行
    2023-01-10 10:32 
  • 就TM你叫夏洛啊 就TM你叫夏洛啊 回复 ysbin(提问者) 这个sql不会占运行时间的,你在navicatli 运行应该是秒出,你放服务器上看看,可能会快点
    2023-01-10 10:40 
  • 2关注人数
  • 281浏览人数
  • 最后回答于:2023-1-10 10:25
    请选择关闭问题的原因
    确定 取消
    返回顶部