-
-
youya1888 小试身手Lv3
发表于2021-6-3 16:13
悬赏10
未解决
过滤条件写法:left(EAST_ORG_JGGXB.BBQ_,6) = @bbq & if(diminf("报表户",@rootid ,'TYPE')='9' ,EAST_ORG_JGGXB.USERID_ = @rootid,EAST_ORG_JGGXB.USERID_ = ardb("select min(userid_) from EAST_ORG_JGXXB where (userid_ = '<#=@rootid#>' or userid_ = '999999') and substr(bbq_,1,6) = substr('<#=@bbq#>',1,6)"))
在分析区diminf("报表户",@rootid ,'TYPE')是可以取到维表的辅助列type的值的,








5个回答
通过减少过滤条件,来排查具体是哪里的问题,比如,使用下面的过滤条件看一下是否报错
left(EAST_ORG_JGGXB.BBQ_,6) = @bbq & diminf("报表户",@rootid ,'TYPE')='9' & EAST_ORG_JGGXB.USERID_ = @rootid
zengxq 发表于 2021-6-3 17:49
通过减少过滤条件,来排查具体是哪里的问题,比如,使用下面的过滤条件看一下是否报错
left(EAST_ORG_JGGXB ...
一共是2个过滤条件,第二个是个if语句
测试一下diminf("报表户",@rootid ,'TYPE')能否正常取值。在表里面写入<#=diminf("报表户",@rootid ,'TYPE')#>测试能取到9或0,再写入过滤条件。
zengxq 发表于 2021-6-7 16:53
测试一下diminf("报表户",@rootid ,'TYPE')能否正常取值。在表里面写入测试能取到9或0,再写入过滤条件。 ...
能取,已经变通解决
解决写法: if(ardb("select max(TYPE) from EAST_DIM_BBH where id = '<#=@rootid#>' ")='9',EAST_ORG_JGGXB.USERID_ = @rootid,EAST_ORG_JGGXB.USERID_ = ardb("select min(userid_) from EAST_ORG_JGXXB where (userid_ = '<#=@rootid#>' or userid_ = '999999') and substr(bbq_,1,6) = substr('<#=@bbq#>',1,6)"))