[ABI 5.2] ardb怎么和mkfilter一起用?

6088
14

asda 数据小白Lv1

发表于2023-4-23 09:49

悬赏10

已解决

楼主
在条件过滤里面,我需要写一个in  (子查询)的过滤条件
子查询用ardb函数,然后where里面要传参数组件,有7-8个,一个个if的写的话,有很多种变化,最好是可以ardb配合mkfilter函数去进行子查询,请问一下有人知道吗?

最近看过此主题的会员

sunq

最佳答案
本帖最后由 豌豆君 于 2023-4-26 17:58 编辑
asda 发表于 2023-4-25 20:09
好的,我明天到公司再试试,十分感谢!
报表可以正常计算了吗?


两个方案:
1.原来的过滤条件中 ardb 外的宏去掉 (用len函数,判断参数是否为空,len(@cs)=0)
2.sql中的表添加为主题表,设置关联关系,再写过滤条件(在主题集属性中添加表关联关系,报表中表元勾选指标,设置连接模式)
14个回答

只看楼主

豌豆君 小试身手Lv3

发表于2023-4-23 12:23

只看该作者

取消 关注该作者的回复

沙发

子查询中查询的来源是一个表,还是多个表?

asda 数据小白Lv1

发表于2023-4-24 11:50

只看该作者

取消 关注该作者的回复

板凳

豌豆君 发表于 2023-4-23 12:23
子查询中查询的来源是一个表,还是多个表?

一个表

asda 数据小白Lv1

发表于2023-4-24 11:54

只看该作者

取消 关注该作者的回复

地板

我用ardb+if函数,能跑出完整的sql且数据。但是有一个问题,就是当子查询为空的时候,就会报错

豌豆君 小试身手Lv3

发表于2023-4-24 12:16

只看该作者

取消 关注该作者的回复

5#

本帖最后由 豌豆君 于 2023-4-24 18:06 编辑

asda 发表于 2023-4-24 11:54
我用ardb+if函数,能跑出完整的sql且数据。但是有一个问题,就是当子查询为空的时候,就会报错 ...

过滤条件中的宏表达式部分,以文本形式放到报表中,计算看看报错时查询的结果是什么。目前看,报错是因为查询为空时,过滤条件是:表.字段 in [] ,没有任何返回值。

试着换个方式呢,将查询的表添加为主题表,设置两个表的关联关系,这样可以直接在过滤条件中判断参数了。

豌豆君 小试身手Lv3

发表于2023-4-25 17:32

只看该作者

取消 关注该作者的回复

6#

请问问题解决了吗?

asda 数据小白Lv1

发表于2023-4-25 17:54

只看该作者

取消 关注该作者的回复

7#

豌豆君 发表于 2023-4-24 12:16
过滤条件中的宏表达式部分,以文本形式放到报表中,计算看看报错时查询的结果是什么。目前看,报错是因为 ...

我去判断这个数据长度为0,让他走xh="",但是他不知道为什么不走这个语句,还是报数组越界

豌豆君 小试身手Lv3

发表于2023-4-25 18:17

只看该作者

取消 关注该作者的回复

8#

asda 发表于 2023-4-25 17:54
我去判断这个数据长度为0,让他走xh="",但是他不知道为什么不走这个语句,还是报数组越界 ...

应该是没办法判断空的数组。
试试换个方式呢,sql中的表添加为主题表,设置关联关系,再写过滤条件,这里就是对新增表的条件了

asda 数据小白Lv1

发表于2023-4-25 19:20

只看该作者

取消 关注该作者的回复

9#

豌豆君 发表于 2023-4-25 18:17
应该是没办法判断空的数组。
试试换个方式呢,sql中的表添加为主题表,设置关联关系,再写过滤条件,这里 ...

设置为主题表我会,但是这怎么设置两个表的关联关系呀?两个主题表引用的都是同一个sql表。

豌豆君 小试身手Lv3

发表于2023-4-25 19:41

只看该作者

取消 关注该作者的回复

10#

asda 发表于 2023-4-25 19:20
设置为主题表我会,但是这怎么设置两个表的关联关系呀?两个主题表引用的都是同一个sql表。 ...

在主题集属性中添加表关联关系,报表中表元勾选指标,这里也设置下连接模式

豌豆君 小试身手Lv3

发表于2023-4-25 19:56

只看该作者

取消 关注该作者的回复

11#

原来的过滤条件中 ardb 外的宏去掉,再计算看看呢~

然后判断参数为空,可以用len函数,len(@cs)=0 ,等于0即为空,否则不为空。

上一页12下一页共2页

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号