2

私は MDX を初めて使用するので、簡単な質問があります。Team System という名前の TFS キューブを使用しています。私の問題:

AND 演算子を使用して追加の式をチェックしたい IIF 式があります。そこで、2 つの DateTime オブジェクトを比較したいと思います。レポートには、実際の日付のデータのみが表示されます。ここに私のコード:

IIF(ISEMPTY(SUM(YTD(
    [Work Item].[PlannedWeek__HierarchyByWeek].CurrentMember),
    [Measures].[EffectivelyValue])) 

AND[作業項目].[PlannedWeek__HierarchyByWeek].CurrentMember < Now()

 , [Measures].[EffectivelyValue]
  , SUM(YTD(
   [Work Item].[PlannedWeek__HierarchyByWeek].CurrentMember),
    [Measures].[EffectivelyValue]) )  

Planned Week は、DateTime データ型を持つ自己作成フィールドです。Now() 関数にも DateTime データ型があるため、比較は正しいはずですが、何も起こりません。

楽しみにありがとう

オイゲン

4

2 に答える 2

1

こんにちは、ご回答いただきありがとうございます。私は試した:

Mid([Work Item].[xxxx_PlannedWeek__HierarchyByWeek].CurrentMember.UniqueName,58,10)

例: 2013-07-21, 2013-07-28 (週の終わりを示します)

だから私はこれを試しました:

AND  CLng(Mid([Work Item].[xxxx_PlannedWeek__HierarchyByWeek].CurrentMember.UniqueName,58,10))
<CLng(Format(Now(), "yyyy-mm-dd"))

しかし、それは何も起こりません。単一の方法で実行すると、どこでも「true」が表示されます。しかし、2013-08-23 などの日付のデータセットがあります。したがって、偽の値もあるはずです。

編集:OK私は問題を解決しました。の

Format(Now(), "yyyy-mm-dd") 

でなければなりません

Format(Now(), "yyyy-MM-dd")
于 2013-08-22T09:45:35.630 に答える
1

MDX の階層メンバーには「メンバー」のデータ型があり、日時、文字列、整数などの「プリミティブ」データ型はありません。メンバー プロパティのみが「プリミティブ」データ型を持ちます。datetime週属性のようなプロパティを定義することもできます。あなたが SQL Server Analysis Services であると仮定すると、これは関係を介して行われます。

または、文字列操作を使用してプロパティから日付情報を抽出しUniqueName、キューブを変更する必要がないようにすることもできます。UniqueName には、キューブ設計でキーとして定義したデータが含まれています。週の階層メンバーに、文字列関数を介して 3013 年 8 月 20 日の 20130820 のようなものを抽出できるキーがあると仮定すると (Mid(, 30, 8)以下の例として使用します)、次のようなことができます。

CLng(Mid([Work Item].[PlannedWeek__HierarchyByWeek].CurrentMember.UniqueName, 30, 8))
<
CLng(Format(Now(), "yyyymmdd"))

CurrentMember.UniqueName上記のコードを適応させるには、キューブに何が表示されるかを正確に確認する必要があります。

最後に、もちろん、文字列メソッドを使用して UniqueName から関連部分を抽出し、そのCDate関数を使用して変更されていない と比較することNow()もできます。つまり、 の左側ですべての操作を実行します<

于 2013-08-20T08:18:14.423 に答える