@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で日付属性を指定する場合は、stringパラメータで@TODATEを使用して、日付文字列を数値に変換する必要があります。
次の演算子がサポートされています:
表2-34サポートされる演算子
演算子 説明 > 次より大きい >= 以上 < 次より小さい <= 以下 = = 次と等しい <>または!= 次と等しくない IN 含む -
IN演算子は、属性ディメンションの属性のサブカテゴリに関連付けられている基本メンバーを戻します。 たとえば、Sample Basicデータベースでは、
@WITHATTR(Population,"IN",Medium)
は、母集団ディメンションの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), which returns only base members with Caffeinated set to False.
などの式の場合と同様です -
Date-
@WITHATTR("Intro Date","<",@TODATE("mm-dd-yyyy","07-26-2002"))
は、2002年7月26日より前の日付属性を持つすべての基本メンバーを戻します。
-
例
次の表に、Sample Basicデータベースに基づく、各タイプの演算子の例を示します:
表2-35演算子結果
演算子 | 例 | 結果 |
---|---|---|
> | @WITHATTR(Population,">","18000000") | New York、CaliforniaおよびTexasを返します |
>= | 10,000,000が数値属性メンバーではなく定数である@WITHATTR(Population,">=",10000000) | New York、Florida、California、Texas、Illinoiおよび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) | カフェイン・フリー・コーラ、サスパリャ、バーチ・ビール、ブドウ、オレンジ・ストロベリを返します |
IN | @WITHATTR("Population","IN",Medium) | Massachusetts、Florida、Illinoiおよび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