0

いくつかの参照:

  1. DATESBETWEEN に関する Microsoft のドキュメント
  2. やや似た質問ですが、式の答えと導関数は正しい結果を返しません
  3. 今日のマイクロソフトのドキュメント

上記のマイクロソフトのドキュメントに従って、SSAS 表形式モデルの今日の現在の日付に基づいて、過去 3 か月の計算を取得しようとしています。まず、SSAS の使い方がまったくわからず、私の会社は学習教材を提供していないため、MSDN のドキュメントを読んでいますが、これは開始点ではない可能性があります。これが間違っている場合は、そう言われてありがたい。たとえば、C#またはRubyを使用して、コンソールでコードをテストして、必要な結果が得られるかどうかを確認できますが、SSAS Data Tools の DAX 言語でそれを行う方法がわかりません。これは、ユーザーに提供する GUI です。彼らができることに対する権限はほとんどありません (ディメンションのプロパティにアクセスする方法を理解するのに 4 時間かかりました)。 私は間違いなくコードモンキーです。

以下の式 (およびその派生物) を使用してみました。これは、Microsoft が例で行っているように見えるためです。

3MonthValue:=CALCULATE(SUM([MeasureOne])/SUM([MeasureTwo]),DATESBETWEEN(DateDimension[Date],DATEADD(DateDimension[Date],-3,MONTH),TODAY()))

結果、何もありません。もちろん、同様の SQL ロジックを実行すると、正しい結果が得られます。提供されたSOの例も使用しましたが、それはまさに私が達成しようとしているものではないと思われ、回答として空白しか得られませんでした。特定の時間枠の間で数式を計算する必要がある場合、SQL では WHERE 句になりますが、これを DAX に変換するにはどうすればよいですか? つまり、DAX の WHERE とは何ですか? CALCULATE が正しくない場合、どのアプローチが正しいのでしょうか?

4

1 に答える 1

1

機能していないと言うとき、どういう意味ですか?使用している数式は、日付ディメンションのキーを DATESBETWEEN 関数の開始日として参照しています。これは、メジャーが値を入力することを期待している場合、コンテキストを確立するためにピボットで特定の日付を使用する必要があることを意味します。

設計時にメジャーを表示しようとしている場合、エディターではコンテキストがないため、メジャーは入力されません。

さらに、ピボットで複数の日付を含む時間コンテキストを見ている場合、それも機能しません。たとえば、1 か月または 4 分の 1 を見ているとします。これらは両方とも、複数の DateDimension[Date] に相当するものを包含しているため、ここでもコンテキストを確立できません。

要約すると、ディメンションの時間キーに設定された開始時間コンテキストを使用して DATESBETWEEN のような日付範囲を調べるメジャーは、ピボット データが単一の日付にフィルター処理されている場合にのみピボットに表示されます。

同じ関数を使用してこれをテストできますが、DateDimension[Date] を静的な日付 (または TODAY()) に置き換えることで、開始日をハード セットします。数式には計算を完了するために必要なすべての情報が含まれているため、メジャーは設計時に表示されるはずです。

于 2014-06-26T14:35:21.677 に答える