2017-09-13 17 views
0

メジャーの集計に問題があります。 現実のシナリオは、その週に店舗に入った顧客数に対する購入数の比率を分析することです。 購入タイプ(高価、中等度、安価)とともに、週に何人の顧客が入ったのか、購入した数が分かります。 異なる購入タイプがあるため、その場所とその週の複数の行が作成されます。したがって、同じメジャー(NumberOfWalkInCustomers)が複製されます。私が見たい何メジャーのメジャー集計に含まれるディメンションに応じて

These are the records. NumberOfWalkInCustomers are the totals per the Location and the WeekStartDate only. The duplicated rows are the result of the purchase Types. Without any dimensions in place, the sum looks like 850 but I would like to see the total as 650 because that's the total of Customers entered to those two locations in those two weeks.

は、私は場所と日付の寸法内集計時に、対策がまとめなるだろうです。他のディメンションが配置されている場合、集計を避けるにはどうすればよいですか?

レポートに日付、場所、購入タイプのディメンションがある場合はすべて表示されます。 購入タイプのディメンションを削除すると、購入タイプが顧客はある場所に入った。しかし、Date Dimensionを削除すると、Location1の250(Week1から100、Week2から150)が表示されます。このウェブサイトでは、2つのリンクだけを追加できます。ごめんなさい。

+0

希望の結果を表示してください。私はあなたが何を求めているのか分からない。繰り返しを避けるために、NumberOfWalkInCustomersメジャーグループのIgnoreUnrelatedDimensionsをfalseに設定できます。 –

+0

Danyloありがとうございます。私はできる限り最善の記述を更新しました。購入タイプの次元は必ずしも無関係ではありません。顧客の歩数には影響しませんが、購入数に影響します。私はロケーションレベル内にMaxを表示するだけでいいですが、私がCityレベルで集計すると、例えば合計したいと思います。 – user3397375

+0

代わりにLocation1に300を返します。あなたは100だけ必要です、そうですか?あなたは週の代わりに日のレベルを置くときはどうしたらいいですか?擬似式を作成できますか?例:sum(week、sum(location、max(type、visits))) –

答えて

0

遅い方法と速い方法があります。

1(ピュアMDX):

With 
[Measures].[SumWeekStartDateSumLocationMaxPurchaseType] as 
Sum(
     existing [Date].[Week Start Date].[Week Start Date].Members, 
     [Measures].[2] 
) 


[Measures].[SumLocationMaxPurchaseType] as 
Sum(
     existing [Store Location].[Location].[Location].Members, 
     [Measures].[MaxPurchaseType] 
) 

[Measures].[MaxPurchaseType] as 
Max(
     existing [Purchase Type].[Purchase Type].[Purchase Type].Members, 
     [Measures].[Number Of Walk In Customers] 
) 

select 
[Measures].[SumWeekStartDateSumLocationMaxPurchaseType] on 0 
from [YourCube] 

しかし、大きな寸法のためにあなたはそれが本当に遅いかもしれません。

2(MDX + DWHのビット):次のような構造を使ってキューブに新しいメジャーを追加します。

select 
     WeekStartDate, 
     Location, 
     MaxWalkIn = max(WalkIn) 
from FactTableWalkIn 
group by WeekStartDate, Location 

は、和集合+計算されたメジャーでMaxWalkInメジャーを追加します。

IIF(
     [Purchase Type].[Purchase Type].CurrentMember is [Purchase Type].[Purchase Type].DefaultMember, 
     [Measures].[MaxWalkIn], 
     [Measures].[Number Of Walk In Customers] 
) 
+0

こんにちはDanylo、私は最初の方法を試みた。以下の計算された指標を使用するだけで、この問題に対処しているようです。 [対策]。[MaxPurchaseType] としてマックス( 既存の[購入タイプ]。[購入タイプ]。[購入タイプ] .Members、 [対策]。[お客様の中を歩く数] ) 私は」今はあなたに2つの質問があります。 上記のMDX式を使用している間に論理を説明できますか? (既存購入タイプ...) 場所には別の次元があります。 「購入タイプ」に似ていますが、それは集計されませんが、最大値を使用しますか?どのように他のすべての次元よりも和を避けるのですか? – user3397375

+0

集計は避けられません。購入タイプごとに個別に値を取得し、そこから最大値を取得します。レコードごとに最大値が必要な場合(使用するディメンションに関係なく)、最大集計を持つメジャーを追加する必要があります(私の2番目の方法を参照)。 –

+0

こんにちはダニロ、最初の方法を使用して、私はこれで間違った結果を得ています。たとえば、私がCityレベルまで集計した場合。そのタイプの購入がない場合、顧客の歩数をゼロとしてカウントします。 (実際には、市街地内の店舗では顧客番号の歩数を集計する必要があります)異なる角度で状況を見ることができると思いますか?ロケーションディメンションレベルが「Store」で、日付ディメンションレベルが「Week Start Date」の場合にのみ最大値など – user3397375

関連する問題