キューブ内のディメンションが重複を提供しているため、キューブの処理中にエラーは発生しませんが、キューブを参照すると重複が表示される可能性があります。
ディメンションには階層があり、階層はCountry -- State -- Area
。
DBでは、ディメンションデータは次のようになります。
+---------+------------+-----------+
| Country | State | Subarea |
+---------+------------+-----------+
| India | Karnataka | Bangalore |
| India | Telangana | Hyderabad |
+---------+------------+-----------+
これで、属性Countryでキューブを参照すると、countryの下に2つのメンバーが "India"として表示されます。属性に対してメジャーが選択されると、これら2つの値の間で売上が分割されます。
この問題を回避するための回避策はありますか?
その動作はKeyColumns
設定に依存します。
datasource view
にこれら2つの名前付きクエリを含むキューブがあるとします。
都市:
SELECT 1 AS id, 'India' AS country, 'Calcutta' AS city
UNION
SELECT 2 AS id, 'India' AS country, 'Bangalore' AS city
販売:
SELECT 1 AS city, 5 AS salesamount
UNION
SELECT 2 AS city, 5 AS salesamount
Id列をKeyColumns
として使用する、次のようなsales.city->cities.id
リレーションのSalesテーブルにリンクされた、都市に基づくディメンション:
結果はこれです:
ただし、この属性のKeyColumn
プロパティをcountry
に変更すると、次のようになります。
その結果、すべての売り上げが1つの国で報告されます。
私は同意します ドキュメント は少し簡潔です:
属性がバインドされているデータソースビューの基になるリレーショナルテーブルの列である、属性のキーを表す1つまたは複数の列が含まれています。 NameColumnプロパティに値が指定されていない限り、各メンバーのこの列の値はユーザーに表示されます。
「表示された値が同じであっても、キー列の個別の値ごとに1つの個別の属性メンバーがある」と解釈する必要がある場合
ただし、キー列を変更すると、NameColumn
およびOrderBy
プロパティの変更が必要になる場合があることに注意してください。
また、KeyColumns
は、私の例のように単一のキーではなく、一意のキーとして機能する複数の列で構成できます。
既存のレポートで既に設定されている構造を変更するのが危険すぎる場合は、属性を追加することをお勧めします。