Sql-Server

非葉級節點的自定義聚合以避免重複計算

  • June 12, 2012

我有一個包含以下列的事實表:

WorkerName 
OrderId
NumberOfPackagesPerOrder

請注意,在這個事實表中既不是WorkerName也不是唯一的。OrderId多個使用者可以在單個 OrderId 上工作 另請注意,NumberOfPackagesPerOrder僅取決於OrderId,即對於每個OrderId,數量NumberOfPackagesPerOrder將是相同的。

我正在嘗試建構一個多維數據集,以按員工層次結構從這些數據中報告層次結構報告:

ManagerLevel1           [Total orders completed] [Total Packages Shipped]
   Managerlevel2
       .....
       ManagerLevelN
                 Worker

由於多個工人可以處理同一個訂單,我需要避免重複計算 PackagesPerOrder經理級別(非葉節點)。

這個怎麼做?我需要什麼 MDX 腳本正確地通過僅在ing 這些 by之後對這些SUM NumberOfPackagesPerOrder進行求和?DISTINCT``OrderId

注1 - 僱傭層次結構是遞歸定義的 - 級別不是靜態的。

注意 2 - 非葉節點上的管理器也可能會發送包。

解決問題的正確方法是在 SSAS 中使用多對多關係。

更多細節在這裡https://stackoverflow.com/questions/10971593/custom-aggregation-for-non-leaf-level-nodes-to-avoid-double-counting和這裡http://www.sqlbi.com/wp-內容/上傳/The_Many-to-Many_Revolution_2.0.pdf

然後不需要 MDX。

引用自:https://dba.stackexchange.com/questions/19040