1

日時フィールド [Log Entry].[Time Entry] を持つファクト テーブルがあります。

日付範囲に基づいて次のクエリをフィルタリングしたいと思います: [Log Entry].[Time Entry] が指定された 2 つの日付 (2 つのパラメーター: startdate と enddate) の間にある場合

SELECT 
  NON EMPTY { [Measures].[Average Total Time] } ON COLUMNS, 
  NON EMPTY { ([User Property].[UserProperty].[Id].ALLMEMBERS * [Log Entry].[Time Entry].[Logged On].ALLMEMBERS ) } 
DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS 
FROM [MyCube] 

タイムテーブル/ディメンションを作成する必要がなくなり、それらの日付 (パラメーターを介して渡される) を [ログエントリ].[時間エントリ] と比較できるようになることを避けたいと考えていました。

SQL の between (somedate Between date1 と date2) の概念。

どうすればこれを行うことができますか?

4

1 に答える 1

0

範囲式を使用する必要があります。こちらをご覧ください: http://msdn.microsoft.com/en-us/library/ms146001%28v=sql.105%29.aspx

WHERE 句は次のようになります。

  WHERE (
    [Time].[Month Name].&[August 2009]
    :
    [Time].[Month Name].&[June 2012]
    ) 

UPDATE その中で軸をフィルタリングするには、EXISTS 句を使用する必要があります。

    * {EXISTS
   (
      {[Log Entry].[Time Entry].[Logged On].ALLMEMBERS}
    ,
    {[Log Entry].[Time Entry].&[20120101]:[Log Entry].[Time Entry].&[20130101]}
    )
于 2013-03-15T09:09:16.517 に答える