この関数は、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
...