0

Windows Server 2008 では、SQL Server 2005、Visual Studio、および SQL Server Analysis Services を使用して、OLAP キューブを作成しました。

シナリオは、製品、顧客、およびエージェントを販売する典型的な店舗です。

キューブは、ファクト テーブル tblVendite (販売データ) と sql ビューに基づくディメンションによって作成されます。

スクリーンショットをここに埋め込もうとしましたが、サイズが変更されてクリアされないため、安全なサイトに投稿して表示しました:

スクリーンショット: 立方体の構造

  • ファクト テーブル tblVendite (販売) > PK: CdArticolo (IDProduct)
  • DIMENSION Prodotti (プロドッチ)
  • DIMENSION Calendario(カレンダー)
  • DIMENSION Agenti(エージェント)
  • DIMENSION クライアント(顧客)

カレンダー、顧客/エージェント、製品、ブランドなどの基本的なフィルタを使用してキューブをブラウジングします...すべて正常に動作します

ここで、次のような新しい機能を提供する必要があります。 すべての会社の「トップセラーブランド」と各エージェントの販売を比較して、それらのブランドをどのように販売しているかを確認する

そこで、新しいテーブルと関連するビューを作成しました: vwMarcheOrd(トップ セラー ブランド)

テーブルトップ セル ブランドは事前に入力されてspおり、ブランドごとに 1 つのレコードが含まれています ( CdMarca- Position-Description 順位順) 。

vwMarcheOrdPKが存在し、存在しないため、ファクトテーブルに直接リンクすることはできません。そのため、CdMarca製品を「ブリッジ」してファクトテーブルにリンクする必要がありますCdMarcaCdArticolo

Brandおよび の次元と属性Top Brand:

スクリーンショット: キューブ ディメンション

キューブと問題を閲覧する

ディメンションBrand(1) を行フィールドに追加すると結果は正しいが、Top Brand(2)を追加すると正しくなく、多くのブランドが欠落している(ただし存在する)

スクリーンショット: トップブランドをブラウズ

だから私の質問は2です:

  1. Top Brand次元について何が欠けているか、間違っているか、誤解していますか?
  2. How i can display all records代理店がそのブランドのアイテムを販売しなかった場合でも、行フィールドのトップ ブランド (空白行) ?

ps vMarcheOrd のみに基づいてディメンションを作成し、Product テーブルとの参照関係を作成して、CdMarca > CdArticolo > Fact テーブルをブリッジしようとしましたが、結果は同じです

何日も前から私をブロックしているこの問題を解決するのを本当に助けてくれる人に前もって感謝します

4

2 に答える 2

0

私の理解では、トップブランドは時間の経過とともに変化する可能性があるようです. これは、何らかの形でそれを追跡する必要があることを意味します。私の意見では、これを行う最も簡単な方法は、TopBrandKey をファクト テーブルに追加し、トップ ブランド ディメンションをファクト テーブルに直接結合することです。このようにして、ファクト テーブルで時間の追跡が行われます。新しいレコードが入ってくると、トップ ブランドのキーを検索し、それをファクト テーブルに追加します。販売された製品にはトップブランドであるブランドがないため、あなたのやり方ではうまくいかないと思います(これらは2つの異なるものです).

于 2012-05-07T17:05:28.760 に答える
0

チャオ・ルカ:)

キューブの属性間に適切な属性関係がないように思えます。

BIDS 2005 を使用しているようですが、私はあまり詳しくありません (2008 のほうが簡単です)。しかし、Prodoti -> Brand -> top brand の関係を設定する必要があります。

ディメンション名の下にある属性の + 記号でそれを行うことができます。

于 2012-05-06T13:07:14.143 に答える