报表查询如何实现先通过A条件筛选出B结果,通过B结果的数据作为条件再去做一个新的数据库查询

image.png

image.png

通过第一个查出来的结果集,再去筛选第二个第三个第四个

image.png

FineReport jayson1906 发布于 2021-6-3 14:42 (编辑于 2021-6-3 15:20)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共6回答
最佳回答
0
axingLv6专家互助
发布于2021-6-3 14:46(编辑于 2021-6-3 14:46)

在单元格中设置过滤

image.png

  • jayson1906 jayson1906(提问者) 不是这个问题。这样无法解决
    2021-06-03 15:09 
  • axing axing 回复 jayson1906(提问者) 我觉得可以,你没理解或者没有去尝试
    2021-06-03 15:10 
  • jayson1906 jayson1906(提问者) 回复 axing 我的意思是 地址栏传参以后 查出10条数据(如图描述第一个步骤mp的查询结果),这10条数据的id我要抽取出来又去下面的 库存、型号作为筛选条件进行数据库查询
    2021-06-03 15:16 
  • axing axing 回复 jayson1906(提问者) 你放到这里不是可以拿到一样的结果吗?非要在sql实现就不能写两个数据集,要将另一个数据集写到sql()公式里
    2021-06-03 15:18 
  • jayson1906 jayson1906(提问者) 回复 axing 看看我的第一张图片。描述的问题。 我现在有四个数据库查询 A 第1个查询 通过URL地址栏参数查出一个结果。可能有多条 B 第2个查询 通过第一个查询得出的多条数据,抽出id作为筛选条件进行查询 C 第3个查询 通过第一个查询得出的多条数据,抽出id作为筛选条件进行查询 D 第4个查询 通过第一个查询得出的多条数据,抽出id作为筛选条件进行查询
    2021-06-03 15:51 
最佳回答
1
圣体叶小凡Lv6高级互助
发布于2021-6-3 17:06

巧用参数注入-https://help.fanruan.com/finereport/doc-view-1000.html

可以研究一下这个,不同库查询出来的值,要在另一个库的语句里面计算

  • jayson1906 jayson1906(提问者) 问了帆软技术支持,他们不支持这种东西,没办法做
    2021-06-11 11:36 
  • 圣体叶小凡 圣体叶小凡 回复 jayson1906(提问者) 如果你要把ds1数据集查询出来的结果值,作为条件放到ds2数据集查询,这种动态参数注入是可以实现的
    2021-06-11 13:38 
  • jayson1906 jayson1906(提问者) 好像是有点道理,哈哈哈
    2023-03-18 17:21 
最佳回答
1
jongwangLv6中级互助
发布于2021-6-3 17:31

关联或者子查询?

  • jayson1906 jayson1906(提问者) 问了帆软技术支持,他们不支持这种东西,没办法做
    2021-06-11 11:36 
最佳回答
1
谢哈哈Lv2见习互助
发布于2023-2-13 04:00

动态参数可以解决这个问题,不过仅限一条或者说一行;

如果A数据库里的数据大于1条,则无法完成B数据库里的查询

  • jayson1906 jayson1906(提问者) 问题已经过去两年了,我再看看楼上“圣体叶小凡”说的,貌似是可以实现!
    2023-03-18 17:21 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-6-3 14:44

改SQL 啊

  • jayson1906 jayson1906(提问者) SQL无法处理这个问题
    2021-06-03 15:09 
  • Z4u3z1 Z4u3z1 回复 jayson1906(提问者) 能详细说举例说明一下不?我觉得应该可以的
    2021-06-03 15:22 
  • jayson1906 jayson1906(提问者) 回复 Z4u3z1 你看看我上面补充的图片。估计很难实现。
    2021-06-03 15:51 
  • Z4u3z1 Z4u3z1 回复 jayson1906(提问者) 以B 为例 SELECT B.* FROM DATABEAS1.TABLEA [A] INNER JOIN DATABASE2.TABLE [B] ON A.id=B.ID WHERE B.XXX=\'${URL_参数}\'
    2021-06-03 15:58 
  • jayson1906 jayson1906(提问者) 回复 Z4u3z1 问了帆软技术支持,他们不支持这种东西,没办法做
    2021-06-11 11:36 
最佳回答
0
snrtuemcLv8专家互助
发布于2021-6-3 14:45(编辑于 2021-6-3 14:51)

建议可以把B结果作为子查询条件,给其他数据集使用

select * from 表 where 字段1=(select 字段2 from 表 where 字段3='${控件名}')

  • jayson1906 jayson1906(提问者) 尝试了你这个方法,貌似SQL是拿不到 单元格的参数
    2021-06-03 14:57 
  • snrtuemc snrtuemc 回复 jayson1906(提问者) 那个测试有问题,改了,直接通过子查询来处理
    2021-06-03 15:00 
  • jayson1906 jayson1906(提问者) 我没有用到控件。我是通过URL传参直接呈现报表的效果。报表截图我补充一下
    2021-06-03 15:01 
  • snrtuemc snrtuemc 回复 jayson1906(提问者) 那就在控件名哪边,改成参数名就可以了,比方reportLable
    2021-06-03 15:03 
  • jayson1906 jayson1906(提问者) 回复 snrtuemc 这样就解决不了我上面所提的问题了。 我的意思是 地址栏传参以后 查出10条数据,这10条数据的id我要抽取出来又去别的地方查询
    2021-06-03 15:08 
  • 6关注人数
  • 764浏览人数
  • 最后回答于:2023-2-13 04:00
    请选择关闭问题的原因
    确定 取消
    返回顶部