%TIMEWINDOW (MDX)
返りタイプ
構文および詳細
%TIMEWINDOW(periodSet,rangeTemplateStart)
または、以下のようにします。
%TIMEWINDOW(periodSet,rangeTemplateStart,rangeTemplateEnd)
以下は、この指定の説明です。
-
rangeTemplateStart は、periodSet より下位レベルにある、同じ階層内の時間レベルのメンバです。
-
rangeTemplateEnd は、periodSet より下位レベルにある、同じ階層内の時間レベルの別のメンバです。指定された場合、rangeTemplateEnd は、rangeTemplateStart と同じ期間内にする必要があります (例えば、これら 2 つのメンバは、同じ年または同じ月に属する必要があります)。
rangeTemplateEnd の既定値は rangeTemplateStart です。
システムは、rangeTemplateStart から rangeTemplateEnd までのメンバのセットを生成し、これをテンプレートとして使用して時間ウィンドウを指定します。例えば、rangeTemplateStart が 2000 年 1 月で rangeTemplateEnd が 2000 年 6 月の場合、時間ウィンドウは、指定された任意の年の 1 月 1 日から 6 月 30 日までの日付で構成されます。
次にこの関数は、指定された periodSet の各メンバを検証し、それぞれに対して、指定された時間ウィンドウに入る子メンバを返します。
この関数は、WHERE 節または %FILTER 節の中での使用を目的にしています。この関数は、可能であれば、より高い時間レベルのメンバを返すように最適化されています。したがって、多数のメンバは返されません。
例
まず、以下のクエリは、%TIMEWINDOW を行として使用します。このクエリは誕生年を検証し、それぞれの年の 1 月 1 日から 1月 5 日 (両方の日を含む) に生まれた患者のみを選択します。
SELECT NON EMPTY %TIMEWINDOW(birthd.year.MEMBERS,birthd.[jan 01 1924],birthd.[jan 05 1924]) ON 1
FROM patients
1 Jan 4 1918 1
2 Jan 3 1934 1
3 Jan 3 1937 1
4 Jan 4 1937 1
5 Jan 2 1938 1
6 Jan 1 1940 1
7 Jan 1 1941 1
8 Jan 4 1947 1
9 Jan 5 1947 1
10 Jan 2 1949 1
11 Jan 1 1953 1
...
この例では、範囲テンプレートは、1924 年の日付を任意に参照します。代わりにどの年を使用することもできます。
既述のとおり、この関数は主にフィルタ処理のためのものです。以下のクエリは、指定された任意の年の 1 月 1 日から 1 月 5 日に生まれた患者をすべて選択するだけのものです。
SELECT MEASURES.[%COUNT] ON 0 FROM patients
WHERE %TIMEWINDOW(birthd.year.MEMBERS,birthd.[jan 01 1924],birthd.[jan05 1924])
Patient Count
806
以下のクエリは、同じフィルタを使用しますが、患者を誕生年別にグループ化して表示します。
SELECT MEASURES.[%COUNT] ON 0, NON EMPTY birthd.year.MEMBERS on 1
FROM patients
WHERE %TIMEWINDOW(birthd.year.MEMBERS,birthd.[jan 01 1924],birthd.[jan05 1924])
Patient Count
1 1918 1
2 1934 1
3 1937 2
4 1938 1
5 1940 1
6 1941 1
7 1947 2
8 1949 1
9 1953 1
...
結果を理解しやすくするために、以下のクエリは %LABEL を使用して、わかりやすいキャプションを適用します。
SELECT %LABEL(MEASURES.[%COUNT],"Born Jan 1-5") ON 0, NON EMPTY birthd.year.MEMBERS on 1
FROM patients
WHERE %TIMEWINDOW(birthd.year.MEMBERS,birthd.[jan 01 1924],birthd.[jan 05 1924])
Born Jan 1-5
1 1918 1
2 1934 1
3 1937 2
4 1938 1
5 1940 1
6 1941 1
7 1947 2
8 1949 1
9 1953 1
...