4

目標のキューブ ファクト テーブルがあり、目標は月次レベル (1 月 = 300、2 月 = 450、3 月 = 350 など) です。

これは、結合として月を使用してキューブの日付ディメンションに結合されますが、ディメンションの粒度は日レベルです。

私がやりたいのは、毎月の目標がその月の日に均等に割り当てられるように計算を作成して、1 月の各日が 300/31 Feb 450/28 などの目標を持つようにすることです。

次に、この計算されたメジャーを目標として使用し、日次/月次/四半期/年次の目標として利用できるようにしたいと考えています。

これは、MDX ステートメント (または、いくつかの計算されたメジャーを使用したいくつかのステートメント) で可能になるはずですが、私はそれに慣れていません。

では、このアプローチは機能し、mdx はどのように見えるでしょうか?

ありがとう

4

1 に答える 1

0

ソース OLTP/ステージング データベースを変更できる場合、そのレベルでレポートする必要がある場合は、Targets ファクト テーブルの粒度を日単位に変更することをお勧めします。OLTP データベースに日付ディメンション テーブルがある場合は、ビューでこれを行うことができます。これには、月のファクト テーブルを月属性の日付ディメンションに結合し、その月の日にターゲット値を均等に分散させます。

SQL Server を使用していて、OLTP スキーマが次のようになっている場合:

CREATE TABLE dimDate (
    Date Date,
    YearMonth Integer,
    ...
)

CREATE TABLE factMonthlyTarget (
   YearMonth Integer,
   Value Integer,
   ...
)

新しいファクト ビューは次のようになります。

CREATE VIEW factDailyTarget AS
   SELECT 
      dimDate.Date,
      factMonthlyTarget.Value / Months.DaysPerMonth AS Value
   FROM
      factMonthlyTarget, 
      dimDate, 
      (
         SELECT YearMonth, COUNT(*) AS DaysPerMonth
         FROM dimDate
         GROUP BY YearMonth
      ) Months
   WHERE factMonthlyTarget.YearMonth = Months.YearMonth
         AND Months.YearMonth = dimDate.YearMonth
于 2012-12-12T16:21:30.140 に答える