わかりました、ここに行きます。
ファクト テーブル (Fact_Sales) があります。場合によっては、一部の売上が SPECIAL (請求明細行だけでなく、請求書全体) としてフラグ付けされます。したがって、フィールド IsSpecial は、特定の請求書のすべての請求書明細行で TRUE になります。
これは TRUE/FALSE フラグです (したがって、ファクト テーブルでビットを使用したいと思います)。
データの例を次に示します: (サンプルを忘れてください。テーブルを投稿したり、HTML テーブルを作成したり、テキストをスペース付きのテーブルとしてフォーマットしたりすることはできません)...想像してみてください...
現在、私の SSAS2005 キューブは良好で、非常にうまく機能しています。
最初の試行: InvoiceID または NULL を FLAG フィールドに配置し、それを DISTINCT COUNT します
私の最初の試みでは、InvoiceID または NULL を IsSpecial フィールド (これはバイトではありませんでした) に入れ、メジャーを新しいメジャー グループに追加することによって直接 DISTINCT COUNT を実行しました (したがって、ここでは MDX はありません)。ただし、SSAS はそれほど明快ではなく、NULL をオカレンスとしてカウントします。したがって、私は常に「1」を最小値と見なします(「NULL」の発生が多いため、カウントは 1 です)。ベース メジャー ソースを Preserve Null または ZeroOrBlank に変更しようとしましたが、それでもどこでも値 '1' が表示されます (実際に IsSpecial がある場合を除く)。
2 回目の試行: IsSpecial 'メジャー' を DISTINCT カウントする MDX クエリを作成しています
ここでそれを読みました:http://ask.sqlservercentral.com/questions/50286/calculated-member-to-get-distinct-count-on-a-condi.html。私の問題は、比較する次元がないことです。つまり、私は何を期待していますか?
3 回目の試行: 寸法を作成します。 番号。私が行きたい道に注意してください。私の顧客は、すべてのメジャーを 2 つのメンバー (特別な請求書と通常の請求書) に分割したくありません。「Nb of Special Invoice」という名前の 1 つの新しいメジャーのみが必要です。
お気づきかもしれませんが、私の SSAS 機能はあまり良くありません。3 ~ 4 年間触れていないので、私のクライアントは私にそうしてほしいと思っています...
ありがとう