原报表是用Java开发的,java里的两个sql在压缩文件里,求问大佬如何改写成帆软能执行的sql

自己修改的版本.rar

java里的sql.rar

FineReport 生活不易 发布于 2023-10-9 17:06 (编辑于 2023-10-9 17:14)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
生活不易Lv3见习互助
发布于2023-10-19 20:52

慢慢改,慢慢核对的

最佳回答
0
CD20160914Lv8专家互助
发布于2023-10-9 17:08(编辑于 2023-10-9 17:29)

参数为空查询全部- FineReport帮助文档 - 全面的报表使用教程和学习资料 (fanruan.com)

其实就是这样的语句,你自己改。它是java判断的了

SELECT * FROM 订单 

where 1=1 

 ${if(len(area) == 0,"","and 货主地区 in ('" + area + "')")}

 ${if(len(cs2) == 0,"","and 字段名称 in ('" + cs2+ "')")}

一点点录入参数,然后把得到的sql语句复制出来。放在数据库看哪里有错误

image.png

  • 生活不易 生活不易(提问者) 大佬,我按照原sql逻辑自己改了好几个版本,但执行的结果和原报表对不上,然后修修改改直到sql执行报错了,所以特来论坛求助。。
    2023-10-09 17:12 
  • CD20160914 CD20160914 回复 生活不易(提问者) 这个语句太长了,你得一段一段的测试,最上面的with是临时表。。
    2023-10-09 17:14 
  • 生活不易 生活不易(提问者) 回复 CD20160914 我知道的大佬,我上传了我自己修改的能跑的一个版本,就是按参数为空查全部的思路改的,请你帮我看看是错在那里呀
    2023-10-09 17:15 
  • CD20160914 CD20160914 回复 生活不易(提问者) 人家是不为空的时候才left join,你现在为空就left join写反了。
    2023-10-09 17:18 
  • 生活不易 生活不易(提问者) 回复 CD20160914 大佬,这是我改过的,原本也是不为空再左连接,但sql会报错
    2023-10-09 17:28 
最佳回答
0
JL98Lv6中级互助
发布于2023-10-9 17:13(编辑于 2023-10-9 17:14)

这个只能在数据库里一小段一小段的执行一下,之后再把where后面的条件单独设置一下

  • 生活不易 生活不易(提问者) 大佬,我就是这么做的,但有几个参数哪里执行总是不对,原sql的逻辑并不是参数为空选全部
    2023-10-09 17:17 
  • 2关注人数
  • 347浏览人数
  • 最后回答于:2023-10-19 20:52
    请选择关闭问题的原因
    确定 取消
    返回顶部