不同查询的两个列去重过滤

我有两个查询,ds1和ds2都包含姓名列,需要用ds2的姓名列把ds1里出现过的去重,因为是两个查询不方便在sql里实现, 在公式里使用find(A2,A4)>0无法过滤,使用单元格的过滤数据列,不包含于列可以实现,但是当列为空时会被完全过滤掉,请大佬们指教,最好是在FR里能实现的方法, 我有好几次不同的查询过滤

FineReport 安静的话匣子 发布于 2024-6-19 09:51 (编辑于 2024-6-19 10:15)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
1
等待1986Lv2见习互助
发布于2024-6-19 10:37(编辑于 2024-6-19 10:46)

加一个参数,把ds1里的name赋值给参数

image.png

image.png

然后ds2 where name not in ($参数)

最佳回答
1
CovidLv3高级互助
发布于2024-6-19 09:52
  • 安静的话匣子 安静的话匣子(提问者) 有试过 sql里 ${if(len(A4) == 0,"","and 姓名 != '" + A4+ "'")} 没有生效, 我猜测是先进行了查询,后生成的A4列
    2024-06-19 09:56 
  • Covid Covid 回复 安静的话匣子(提问者) SQL错了。如果你的A4没扩展 SQL应该是${if(len(A4) == 0,"","and 姓名 not in ( '" + replace(A4,",","','")+ "')")}
    2024-06-19 09:57 
  • 安静的话匣子 安静的话匣子(提问者) 回复 Covid 两个列都是扩展列的
    2024-06-19 10:01 
  • Covid Covid 回复 安静的话匣子(提问者) 扩展的增加不扩展辅助列就行了
    2024-06-19 10:03 
  • 安静的话匣子 安静的话匣子(提问者) 回复 Covid 大佬, 这是什么意思, 没懂, 主要是双扩展列,在查询里连参数A4都获取不到,我猜测是先进行了查询,后生成的A4列
    2024-06-19 10:07 
最佳回答
1
很困想睡觉Lv6初级互助
发布于2024-6-19 09:58(编辑于 2024-6-19 10:31)

表关联和临时表应该就可以在sql里面直接实现了吧。

image.png

  • 安静的话匣子 安静的话匣子(提问者) 嗯嗯,主要是很多个杂乱的小查询, 不方便使用表关联和临时表
    2024-06-19 10:00 
  • 很困想睡觉 很困想睡觉 回复 安静的话匣子(提问者) 加一列ds2姓名列,ds1增加条件姓名不属于ds2这一列
    2024-06-19 10:08 
  • 安静的话匣子 安静的话匣子(提问者) 回复 很困想睡觉 我也是想这么实现, 但是sql很长,而且还要过滤好几次不同的查询,所以想直接在FR里实现
    2024-06-19 10:11 
  • 很困想睡觉 很困想睡觉 回复 安静的话匣子(提问者) 你这两个sql 多少行
    2024-06-19 10:24 
  • 很困想睡觉 很困想睡觉 回复 安静的话匣子(提问者) 或者在你原来的基础上你把不包含改为不等于,在ds1的姓名列用单元格过滤把不包含改为不等于,不等于ds2姓名列
    2024-06-19 10:27 
最佳回答
1
123木头人1Lv5初级互助
发布于2024-6-19 11:24(编辑于 2024-6-19 11:27)

Image_20240619112431.png将我的测试数组换成你的,就可以取到去除重复值的数据,数组array(3,4,5,6,7,8)与array(10,4,5)重复了4,5。再将数组array(3,4,5,6,7,8)去掉4,5。

GREPARRAY(array(3,4,5,6,7,8),INARRAY(item,GREPARRAY(array(10,4,5), INARRAY(item, array(3,4,5,6,7,8)) >0))=0)

  • 4关注人数
  • 466浏览人数
  • 最后回答于:2024-6-19 11:27
    请选择关闭问题的原因
    确定 取消
    返回顶部