簡體   English   中英

SSAS測量平均值與范圍值相關

[英]SSAS Measure average related to range values

我每周都會提供銷售數據,每季度提供一次查詢數據。 在SSAS數據立方體中,我預先計算了每個時間段的銷售數據的平均值,我需要做的是從LookupTable獲取相關記錄以進行下一次計算,其中: LookupTable.Min <Sales Average <LookupTable.Max

例:

銷售額= 297 + 33 + 311 = 641

SalesAverage = 213.66

LookupRecordShrinkageIndicator = Min <SalesAverage <Max = 0 <213.66 <9000 = 0.007

CREATE TABLE dbo.SalesData
(
    Id int,
    Sales decimal(18, 2)    )


CREATE TABLE dbo.LookupTable
(
    Id int,
    Min int,
    Max int,
    Shrinkage decimal(10, 5),
    Wages decimal(10, 5),
    Waste decimal(10, 5)
 )

INSERT [dbo].[SalesData] ([Id], [Sales]) VALUES (1, 297)
INSERT [dbo].[SalesData] ([Id], [Sales]) VALUES (2, 33)
INSERT [dbo].[SalesData] ([Id], [Sales]) VALUES (3, 311)

INSERT [dbo].[LookupTable] ([Id], [Min], [Max], [Shrinkage], [Wages], [Waste]) VALUES (1, 0, 9000, 0.00700, 0.12700, 0.00300)
INSERT [dbo].[LookupTable] ([Id], [Min], [Max], [Shrinkage], [Wages], [Waste]) VALUES (2, 9000, 9250, 0.00700, 0.12700, 0.00300)
INSERT [dbo].[LookupTable] ([Id], [Min], [Max], [Shrinkage], [Wages], [Waste]) VALUES (3, 9250, 9500, 0.00700, 0.12300, 0.00300)

我需要根據銷售平均值創建計算成員,其中包含查找表中的指標以供下次計算。

要解決這個問題,我必須使用LookupTable作為維度和度量,讓我們看看我是如何做到這一點的。

  1. 基於LookupTable創建維度:

  2. 添加查找度量執行多維數據集並將查找維度添加到多維數據集。 立方體設計視圖

  3. 在Lookup維度和Lookup度量值組之間創建事實關系

就這樣:

我們來看看mdx示例:

SELECT 
{
    FILTER([Lookup Table].[Id].AllMembers ,  [Measures].[Min] <= 213 AND [Measures].[Max] > 213 )
}
ON COLUMNS,
{
    [Measures].[Shrinkage - Lookup Table], [Measures].[Wages - Lookup Table], [Measures].[Waste - Lookup Table]

} ON ROWS
FROM
[MyCube]

結果:

MDX查詢結果

我希望這個例子很有用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM