すべての従業員の年齢の平均を返す KPI を SSAS に書きたいと思います。従業員の生年月日は Dim_Employee にあります。MDX の日付と時刻の処理に関する推奨事項が満載の本を 3 冊読みましたが、どれもうまくいきませんでした。何時間にもわたる必死の試行錯誤で、私は無数の組み合わせを試みましたが、成功しませんでした。
生年月日は、ソース データベースでは datetime(null) です。私が試した解決策は次のとおりです。
VBA!DateDiff("yyyy", now(), [Employee].[BirthDate].CurrentMember.Member_Value)
もちろん、[Date].[Date].CurrentMember
代わりにを使用する必要がありますnow()
が、簡単にするためにこれを使用しました。
Employee ディメンションでは、Date データ型の ValueColumn を作成しました。Management Studio で実行しようとすると、次のエラーが返されます。
「Axis0 関数は、引数にタプル セット式を予期しています。文字列または数値式が使用されました。」
Member_Value を使用しない場合は null が返され、DateDiff は が返され-2010
ます。
私は、この KPI を書きたいキューブの構造について責任を負っていないため、新しいメジャーやディメンションをまったく必要としないソリューションを探します。(ただし、キューブに新しい要素を追加せずに解決策がない場合は、もちろん、指定されたキューブで変更要求を提案します)
この場合の解決策は何ですか?追加のメジャーを使用せずにこの KPI を作成することは可能ですか?