-
-
橘子树下的背影 初学数据Lv2
发表于2020-7-23 15:57
悬赏100
已解决
楼主
关联的维表可以过滤维表的多个字段吗?我现在关联了一张维表,但是想同时过滤掉维表的另一个字段,可以直接在过滤条件中写吗?
最佳答案
可以用dim或者diminf来取
DIM
DIM
定义:
通常用于维,指标,条件中,表示维在数据库中的字段;这里的维包括通用维,多级维,单级维,但必须都要有对应的数据库表;对于COD文件型维,支持取级次,不支持取属性值;
参数:
1.dim(p1,p2)
参数p1: 表示维表元,可以是表元名,表达式,也可以是维名称;
比如:xxb.hy_dm, "行业代码",id()
参数p2: 表示维的级次,或者是维的属性,还可以是维表的字段名;
比如:0,1,2..., "行业门类","行业大类","hy_ml"
这里 0 表示最大级次;
例:dim(xxb.hy_dm,0)
= dim(xxb.hy_dm,"行业门类")
= dim(xxb.hy_dm,"hy_ml")
= dim("行业代码",0)
= dim("行业代码","行业门类")
= dim("行业代码","hy_ml")
dim(id(),"nsrmc")
注:
第二个参数如果是数字,则第一个参数对应的维可以是文件型维;
例: 如果xxb.hy_dm是文件型维:
dim(xxb.hy_dm,0) ,取的是第0级的前缀;
dim(xxb.hy_dm,"行业门类") 则不支持;
2.dim(p1,p2,p3)
参数p1,p2同上;
参数p3: 是时间参数,用于缓慢增长维,表示截至到维表p1指定参数p3的p2的值;
例:
dim(id(),"nsrmc", "200501--")就是取id()对应维表截止到200501月份的nsrmc字段的值;
注:
如果第一个参数是个常量,比如要取行业代码"A0100"对应的名称,则需要用到 diminf 函数了;
DIMINF定义:
获得某维的值的信息。DIMINF(C1 C2),或DIMINF(C1 C2 I),或DIMINF(C1 C2 C3)。
参数:
C1:第一个参数,表示维的名字,如 HY_DM, 表示“行业代码”等;特殊情况是:“dw” 表示单位级次代码;
C2:第二个参数,表示代码,如 A0000;
C3,I:第三个参数可以是字符或者整型数,也可以没有第三个参数。如果没有第三个参数,那么直接返回代码对应的文字信息;如果有第三个参数且是整型,则返回第I个代码对应的属性;
如果有第三个参数且是字符串,则当字符串是:$PREFIX:则返回此代码所在级次的前缀字符串;如级次为1-2-2的行业代码中,A0000的前缀字符串为A。
如果有第三个参数且是字符串,则当字符串是:$PREFIX:则返回此代码所在级次的前缀字符串;如级次为1-2-2的行业代码中,A0000的前缀字符串为A。
$ISLEAF:是否是叶子节点,此时函数的返回值为T或F,也为字符型。
$LEVEL:返回第二个参数表示的代码在维中的级次,此时函数的返回值也为字符型其他情况返回相应属性对应的文字信息
示例:
返回维的值的信息
DIMINF('HY_DM',A0000),返回‘农、林、牧、渔业’
在维'HY_DM'中,A0000对应的文字信息为‘农、林、牧、渔业’,故返回‘农、林、牧、渔业’
级次为1-2-2的行业代码维hy_dm,diminf('hy_dm','A0000','$PREFIX')='A'
1个回答
可以用dim或者diminf来取
DIM
定义:
通常用于维,指标,条件中,表示维在数据库中的字段;这里的维包括通用维,多级维,单级维,但必须都要有对应的数据库表;对于COD文件型维,支持取级次,不支持取属性值;
参数:
1.dim(p1,p2)
参数p1: 表示维表元,可以是表元名,表达式,也可以是维名称;
比如:xxb.hy_dm, "行业代码",id()
参数p2: 表示维的级次,或者是维的属性,还可以是维表的字段名;
比如:0,1,2..., "行业门类","行业大类","hy_ml"
这里 0 表示最大级次;
例:dim(xxb.hy_dm,0)
= dim(xxb.hy_dm,"行业门类")
= dim(xxb.hy_dm,"hy_ml")
= dim("行业代码",0)
= dim("行业代码","行业门类")
= dim("行业代码","hy_ml")
dim(id(),"nsrmc")
注:
第二个参数如果是数字,则第一个参数对应的维可以是文件型维;
例: 如果xxb.hy_dm是文件型维:
dim(xxb.hy_dm,0) ,取的是第0级的前缀;
dim(xxb.hy_dm,"行业门类") 则不支持;
2.dim(p1,p2,p3)
参数p1,p2同上;
参数p3: 是时间参数,用于缓慢增长维,表示截至到维表p1指定参数p3的p2的值;
例:
dim(id(),"nsrmc", "200501--")就是取id()对应维表截止到200501月份的nsrmc字段的值;
注:
如果第一个参数是个常量,比如要取行业代码"A0100"对应的名称,则需要用到 diminf 函数了;
DIMINF定义:
获得某维的值的信息。DIMINF(C1 C2),或DIMINF(C1 C2 I),或DIMINF(C1 C2 C3)。
参数:
C1:第一个参数,表示维的名字,如 HY_DM, 表示“行业代码”等;特殊情况是:“dw” 表示单位级次代码;
C2:第二个参数,表示代码,如 A0000;
C3,I:第三个参数可以是字符或者整型数,也可以没有第三个参数。如果没有第三个参数,那么直接返回代码对应的文字信息;如果有第三个参数且是整型,则返回第I个代码对应的属性;
如果有第三个参数且是字符串,则当字符串是:$PREFIX:则返回此代码所在级次的前缀字符串;如级次为1-2-2的行业代码中,A0000的前缀字符串为A。
如果有第三个参数且是字符串,则当字符串是:$PREFIX:则返回此代码所在级次的前缀字符串;如级次为1-2-2的行业代码中,A0000的前缀字符串为A。
$ISLEAF:是否是叶子节点,此时函数的返回值为T或F,也为字符型。
$LEVEL:返回第二个参数表示的代码在维中的级次,此时函数的返回值也为字符型其他情况返回相应属性对应的文字信息
示例:
返回维的值的信息
DIMINF('HY_DM',A0000),返回‘农、林、牧、渔业’
在维'HY_DM'中,A0000对应的文字信息为‘农、林、牧、渔业’,故返回‘农、林、牧、渔业’
级次为1-2-2的行业代码维hy_dm,diminf('hy_dm','A0000','$PREFIX')='A'