多次元式の結果を除外する方法を理解するのに苦労しています。
これは私のデータベース スキーマです。
そしてこれが私のデータです。
Manufacturer
╔════╦═══════════════════╗
║ Id ║ Name ║
╠════╬═══════════════════╣
║ 1 ║ Awesome Computers ║
║ 2 ║ TailSpin Toys ║
╚════╩═══════════════════╝
Item
╔════╦═════════╦════════════════╦═══════╗
║ Id ║ Name ║ ManufacturerId ║ Stock ║
╠════╬═════════╬════════════════╬═══════╣
║ 1 ║ PC ║ 1 ║ 40 ║
║ 2 ║ Server ║ 1 ║ 10 ║
║ 3 ║ STB ║ 2 ║ 80 ║
║ 4 ║ Console ║ 2 ║ 50 ║
╚════╩═════════╩════════════════╩═══════╝
Part
╔════╦══════════════════╦════════╦══════════╦═══════╗
║ Id ║ Name ║ ItemId ║ StatusId ║ Stock ║
╠════╬══════════════════╬════════╬══════════╬═══════╣
║ 1 ║ MBO ║ 1 ║ 1 ║ 100 ║
║ 2 ║ Processor ║ 1 ║ 1 ║ 100 ║
║ 3 ║ Server MBO ║ 2 ║ 2 ║ 20 ║
║ 4 ║ Server processor ║ 2 ║ 2 ║ 20 ║
║ 5 ║ Main box ║ 3 ║ 2 ║ 40 ║
║ 7 ║ Adapter ║ 3 ║ 3 ║ 30 ║
║ 8 ║ Controller ║ 4 ║ 2 ║ 40 ║
║ 10 ║ Adapter ║ 4 ║ 1 ║ 60 ║
║ 11 ║ Memory card ║ 4 ║ 2 ║ 80 ║
╚════╩══════════════════╩════════╩══════════╩═══════╝
Status
╔════╦═════════════╗
║ Id ║ Name ║
╠════╬═════════════╣
║ 1 ║ No data ║
║ 2 ║ Available ║
║ 3 ║ Unavailable ║
╚════╩═════════════╝
すべてをテーブル モデル ソリューションにインポートしました。この後、次の 2 つのメジャーを作成しました。
- テーブル アイテム: ItemStock:=SUM([在庫])
- テーブル パーツ: PartStock:=SUM([在庫])
次に、キューブをサーバーにデプロイしました。
次の MDX クエリを実行すると...
SELECT
NON EMPTY {
[Part].[Name].CHILDREN
} ON ROWS,
{
[Measures].[PartStock]
} ON COLUMNS
FROM [Model]
WHERE (
{
[Status].[Id].&[1]
}
)
...この結果セットを取得します...
╔═══════════╦═══════════╗
║ ║ PartStock ║
╠═══════════╬═══════════╣
║ Adapter ║ 60 ║
║ MBO ║ 100 ║
║ Processor ║ 100 ║
╚═══════════╩═══════════╝
...大丈夫です。
ただし、この MDX クエリを実行すると...
SELECT
NON EMPTY {
[Item].[Name].CHILDREN
} ON ROWS,
{
[Measures].[ItemStock]
} ON COLUMNS
FROM [Model]
WHERE (
{
[Status].[Id].&[1]
}
)
...この結果セットを取得しています...
╔═════════╦═══════════╗
║ ║ ItemStock ║
╠═════════╬═══════════╣
║ Console ║ 50 ║
║ PC ║ 40 ║
║ Server ║ 10 ║
║ STB ║ 80 ║
╚═════════╩═══════════╝
ItemStock テーブルの項目は、多対多の関係としてPartテーブルによって除外されると予想していました。たとえば、MBO、プロセッサ、およびアダプタには項目 1 と 4 への参照があるため、結果はそれらに制限され、結果は次のようになります。
╔═════════╦═══════════╗
║ ║ ItemStock ║
╠═════════╬═══════════╣
║ Console ║ 50 ║
║ PC ║ 40 ║
╚═════════╩═══════════╝
私は何を間違っていますか?