@WITHATTR
Essbaseの@WITHATTR計算関数は、指定された条件を満たす属性または可変属性に関連付けられているすべての基本メンバーを返します。
>、<、=、INなどの演算子を使用して、満たす必要のある条件を指定できます。この関数は、別の関数のパラメータとして使用できます。ここで、このパラメータは、メンバーのリストです。
構文
@WITHATTR (dimName, "operator", value)
パラメータ
- dimName
-
単一の属性ディメンション名または可変属性ディメンション名。
- operator
-
演算子の仕様。引用符("")で囲む必要があります。
- value
-
演算子と組み合せて、満たす必要のある条件を定義する値。valueは、属性メンバー仕様、定数、または日付形式の関数(@TODATE)にできます。
ノート
-
可変属性は、計算スクリプトでパースペクティブが指定されていない場合、FIXコマンドに含めることはできません。
-
@WITHATTRは、@ATTRIBUTEのスーパーセットです。次の2つの式は、同じメンバー・セットを返します。
@ATTRIBUTE(Bottle) @WITHATTR("Pkg Type","==",Bottle)
ただし、条件を指定しているため、次の式は@WITHATTRでのみ実行できます(@ATTRIBUTEでは実行できません)。
@WITHATTR(Ounces,">","16")
-
@WITHATTRで日付属性を指定する場合は、@TODATEをstringパラメータ内で使用して、日付文字列を数値に変換します。
次の演算子がサポートされています:
表3-33 サポートされている演算子
演算子 説明 > 大なり >= 以上 < 未満 <= 以下 == 等しい <>または!= 等しくない IN In -
IN演算子は、属性ディメンションの属性のサブカテゴリに関連付けられている基本メンバーを返します。たとえば、Sample Basicデータベースでは、
@WITHATTR(Population,"IN",Medium)
は、Populationディメンション内でMedium親メンバーの下のすべての属性に関連付けられている基本メンバーを返します。 -
@WITHATTRでブール属性を使用する場合は、実際のブール属性メンバー名のみを使用するか、1 (TrueまたはYesの場合)または0 (FalseまたはNoの場合)を使用します。TrueまたはYes、FalseまたはNoを交換可能なものとして使用することはできません。
-
演算子の働きは、属性型が異なれば、異なる場合があります。例:
-
Text—
@WITHATTR(Flavors,"<",Orange)
は、アルファベットのOrangeに先行する属性を持つ基本メンバーを返します。たとえば、Apple、Cranberry、Mango、Oatですが、PeachまたはStrawberryは含まれません。 -
Boolean—
@WITHATTR(Caffeinated,"<",True)
は、CaffeinatedがFalse(またはNo)に設定されたすべての基本メンバーを返します。CaffeinatedがTrue(またはYes)に設定されていないか、Caffeinated属性がまったくない基本メンバーは返されません。@WITHATTR(Caffeinated,"<>",True)
のような数式の場合も同様に動作し、CaffeinatedがFalseに設定された基本メンバーのみを返します。 -
Date—
@WITHATTR("Intro Date","<",@TODATE("mm-dd-yyyy","07-26-2002"))
は、2002年7月26日より前の日付属性を持つすべての基本メンバーを返します。
-
例
次の表は、Sample Basicデータベースに基づいた、各型の演算子の例を示しています。
表3-34 演算子の結果
演算子 | 例 | 結果 |
---|---|---|
> | @WITHATTR(Population,">","18000000") | New York、California、Texasを返す |
>= | @WITHATTR(Population,">=",10000000)ここで、10,000,000は数値属性メンバーではなく、定数 | New York、Florida、California、Texas、Illinois、Ohioを返す |
< | @WITHATTR(Ounces,"<","16") | Cola、Diet Cola、Old Fashioned、Sasparilla、Diet Creamを返す |
<= | @WITHATTR("Intro Date","<=",@TODATE("mm-dd-yyyy", "04-01-2002")) | Cola、Diet Cola、Caffeine Free Cola、Old Fashionedを返す |
= = | @WITHATTR("Pkg Type","= =",Can) | Cola、Diet Cola、Diet Creamを返す |
<>または!= | @WITHATTR(Caffeinated,"<>",True) | Caffeine Free Cola、Sasparilla、Birch Beer、Grape、Orange Strawberryを返す |
IN | @WITHATTR("Population","IN",Medium) | Massachusetts、Florida、Illinois、Ohioを返す |
次の2つの例は、Sample Basicデータベースに基づく計算スクリプトで使用される@WITHATTRを示します。
/* To increase by 10% the price of products that are greater than
or equal to 20 ounces */
FIX (@WITHATTR(Ounces,">=","20"))
Price = Price * 1.1;
ENDFIX
/* To increase by 10% the marketing budget for products brought
to market after a certain date */
FIX (@WITHATTR("Intro Date",">",
@TODATE("mm-dd-yyyy","06-26-1996")));
Marketing = Marketing * 1.1;
ENDFIX