Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

%ALL

メンバが属している階層を使用する ROW コンテキストおよび COLUMN コンテキストを無視しながら、このメンバを使用できるようにします。この関数は、インターシステムズによる MDX への拡張機能です。

返りタイプ

この関数は、メンバを返します。

構文および詳細

member_expression.%ALL

以下は、この指定の説明です。

この関数を使用すると、階層内のあるメンバをその階層内の別のメンバと比較する (例えば、ある製品をすべての製品と比較する) 計算メンバを作成できます。

以下のような値を計算することが必要になる場合もあります。

  • すべての製品と比較したある製品の割合

  • 別の製品と比較したある製品の割合

例えば、以下のクエリは、各年齢グループの患者数と等しい計算メンバを、すべての年齢グループの患者の割合として使用します。

WITH MEMBER MEASURES.[pct age grps] AS 'aged.CURRENTMEMBER/aged.[all patients].%ALL', FORMAT_STRING='#.##' 
SELECT {MEASURES.[%COUNT],MEASURES.[pct age grps]} ON 0,
aged.h1.[age group].MEMBERS ON 1 FROM patients

                       Patient Count         pct age grps
1 0 to 29                       4,216                 0.42
2 30 to 59                      4,212                 0.42
3 60+                           1,572                 0.16

この計算メンバは、AgeD ディメンジョンの現在のメンバとして定義され、そのディメンジョンの All メンバで除算されます。

aged.CURRENTMEMBER/aged.[all patients].%ALL

一方、以下のクエリを考えてみます。ここでは、計算メンバが %ALL 関数を使用しません。

WITH MEMBER MEASURES.[BADpct age grps] AS 'aged.CURRENTMEMBER/aged.[all patients]', FORMAT_STRING='#.##' 
SELECT {MEASURES.[%COUNT],MEASURES.[BADpct age grps]} ON 0,
aged.h1.[age group].MEMBERS ON 1 FROM patients

                       Patient Count      BADpct age grps
1 0 to 29                       4,216                 1.00
2 30 to 59                      4,212                 1.00
3 60+                           1,572                 1.00

この場合、各行の aged.[all patients] の値は、aged.CURRENTMEMBER の値と同じです。これは、この行のメンバが aged.[all patients] と同じ階層に属しているためです。

%ALL 関数が、他の階層のメンバによって指定されるコンテキストを考慮しないことに注意してください (この関数は、この関数で使用するメンバに関連付けられた階層のみを無視します)。以下はその例です。

WITH MEMBER MEASURES.[pct age grps] AS 'aged.CURRENTMEMBER/aged.[all patients].%ALL', FORMAT_STRING='#.##' 
SELECT CROSSJOIN(gend.MEMBERS,{MEASURES.[%COUNT],MEASURES.[pct age grps]}) ON 0,
aged.h1.[age group].MEMBERS ON 1 FROM patients

                  Patient Coun   pct age grps   Patient Coun   pct age grps
1 0 to 29                 1,985           0.39          2,231           0.45
2 30 to 59                2,123           0.42          2,089           0.42
3 60+                       926           0.18            646           0.13

ここで、最初の 2 つの Patient Count 列および pct age grps 列は女性患者に対応し、2 番目の 2 つの列は男性患者に対応します。それぞれの pct age grps 列は、その性別の患者数を、その性別のすべての年齢グループに対する割合で示します。

また、%ALL 関数が、その階層のメンバが WHERE 節または FILTER 節で使用されている場合に、これらのメンバを無視しないことに注意してください。つまり、%ALL 関数は、クエリに適用されるすべてのフィルタを全面的に尊重します。以下はその例です。

WITH MEMBER MEASURES.[pct of all ages] AS 'aged.CURRENTMEMBER/aged.[all patients].%ALL', FORMAT_STRING='#.##' 
SELECT {MEASURES.[%COUNT],MEASURES.[pct of all ages]} ON 0,
aged.h1.[age group].MEMBERS ON 1 FROM patients 
WHERE aged.h1.[age group].[0 to 29]

                       Patient Count      pct of all ages
1 0 to 29                       4,216                 1.00
2 30 to 59                          *                    *
3 60+                               *                    *

関連項目

FeedbackOpens in a new tab