上下文:零售,交易,促銷。好的,讓我們看看一些數據,你會明白的。SSAS事實建模
receipt_no和LINE_NO在事務(receipt_no)定義的訂單項。您可以看到應用於此項目的兩個促銷活動(a,b)。總折扣(-3.54-1.19)等於原始價值 - 銷售額(12-7.27)。所以銷售額(7.27)是所有應用優惠券後的最終價值。
現在我需要在SSAS中將其作爲一個事實來構建。商業關鍵將是receipt_no,line_no,promotion_name。相關的維度將是提升。這只是爲了說明的目的,實際情況要複雜得多。
所以問題將是如果切片事實通過promotion_name,沒有問題。如果僅通過promotion_name查看沒有切片的總數,則此項目的銷售額將翻倍,這是不正確的。
那麼你在這種情況下通常如何/最佳實踐?
如果你把行放在factTable中,你必須把每行的銷售額=原始值(每個促銷)的價值 - discountlines' – Justin
@Justin,問題是我們的系統在使用任何促銷和全部銷售之前僅具有原始價值應用促銷。沒有中間值。 – thotwielder
所以你必須按照你想要的級別彙總所有數據(如果有兩個相同的產品,一個收據中的促銷)。然後用行數除SumValues(OriginalValue)。因此,對於您的示例,您可以爲每行6獲得'OriginalValue'列,然後從銷售額列6-3.54 = 2.46'和6-1.19 = 4.81' – Justin