-
-
asda 数据小白Lv1
发表于2023-4-23 09:49
悬赏10
已解决
楼主
在条件过滤里面,我需要写一个in (子查询)的过滤条件
子查询用ardb函数,然后where里面要传参数组件,有7-8个,一个个if的写的话,有很多种变化,最好是可以ardb配合mkfilter函数去进行子查询,请问一下有人知道吗?
子查询用ardb函数,然后where里面要传参数组件,有7-8个,一个个if的写的话,有很多种变化,最好是可以ardb配合mkfilter函数去进行子查询,请问一下有人知道吗?
最佳答案
本帖最后由 豌豆君 于 2023-4-26 17:58 编辑
报表可以正常计算了吗?
两个方案:
1.原来的过滤条件中 ardb 外的宏去掉 (用len函数,判断参数是否为空,len(@cs)=0)
2.sql中的表添加为主题表,设置关联关系,再写过滤条件(在主题集属性中添加表关联关系,报表中表元勾选指标,设置连接模式)
asda 发表于 2023-4-25 20:09
好的,我明天到公司再试试,十分感谢!
两个方案:
1.原来的过滤条件中 ardb 外的宏去掉 (用len函数,判断参数是否为空,len(@cs)=0)
2.sql中的表添加为主题表,设置关联关系,再写过滤条件(在主题集属性中添加表关联关系,报表中表元勾选指标,设置连接模式)
14个回答
豌豆君 发表于 2023-4-23 12:23
子查询中查询的来源是一个表,还是多个表?
一个表
我用ardb+if函数,能跑出完整的sql且数据。但是有一个问题,就是当子查询为空的时候,就会报错
本帖最后由 豌豆君 于 2023-4-24 18:06 编辑
asda 发表于 2023-4-24 11:54
我用ardb+if函数,能跑出完整的sql且数据。但是有一个问题,就是当子查询为空的时候,就会报错 ...
过滤条件中的宏表达式部分,以文本形式放到报表中,计算看看报错时查询的结果是什么。目前看,报错是因为查询为空时,过滤条件是:表.字段 in [] ,没有任何返回值。
试着换个方式呢,将查询的表添加为主题表,设置两个表的关联关系,这样可以直接在过滤条件中判断参数了。
豌豆君 发表于 2023-4-24 12:16
过滤条件中的宏表达式部分,以文本形式放到报表中,计算看看报错时查询的结果是什么。目前看,报错是因为 ...
我去判断这个数据长度为0,让他走xh="",但是他不知道为什么不走这个语句,还是报数组越界


asda 发表于 2023-4-25 17:54
我去判断这个数据长度为0,让他走xh="",但是他不知道为什么不走这个语句,还是报数组越界 ...
应该是没办法判断空的数组。
试试换个方式呢,sql中的表添加为主题表,设置关联关系,再写过滤条件,这里就是对新增表的条件了
豌豆君 发表于 2023-4-25 18:17
应该是没办法判断空的数组。
试试换个方式呢,sql中的表添加为主题表,设置关联关系,再写过滤条件,这里 ...
设置为主题表我会,但是这怎么设置两个表的关联关系呀?两个主题表引用的都是同一个sql表。
asda 发表于 2023-4-25 19:20
设置为主题表我会,但是这怎么设置两个表的关联关系呀?两个主题表引用的都是同一个sql表。 ...
在主题集属性中添加表关联关系,报表中表元勾选指标,这里也设置下连接模式