2016-03-24 12 views
1

Satış verilerini 12 aylık ortalama ile almak istiyorum.Tarih aralığı ile SSAS Çok Boyutlu Küp (MDX) 'dan 12 aylık çalışma ortalaması nasıl sorgulanır?

WITH MEMBER [Measures].[12m average] AS 
Avg 
(
[Date].[Month].CurrentMember.Lag(11) : 
[Date].[Month].CurrentMember, 
[Measures].[Sales Quantity] 
) 
SELECT 
{ [Measures].[Sales Quantity], [Measures].[12m average] } ON COLUMNS, 
NON EMPTY { CROSSJOIN([Product].[Product Name].Allmembers, [Date].[Month].AllMembers) } ON ROWS 
FROM [Sales] 
where { [Date].[Date].&[2016-01-01T00:00:00] : [Date].[Date].&[2016-02-28T00:00:00] } 

Sorgu doğru Satış Miktarı toplanmasına döndürür, ancak 12m ortalama yanlıştır: Bu MDX sorgusu yazdı. Son tarih aralığı nedeniyle ortalama 12 aylık veriler alınamıyor.

Örneğin, 2016-01 ay için 12m ortalama için 2015-01 - 2016-01 veri, ancak tarih 2016-01-01T00: 00: 00 tarihinden itibaren almamız gerekiyor.

Bu sorun nasıl çözülür?

cevap

1

WHERE aralığı taşıyabilirsiniz:

WITH 
SET [TargetMths] AS 
    EXISTS(
    [Date].[Month].AllMembers 
    ,[Date].[Date].&[2016-01-01T00:00:00] : [Date].[Date].&[2016-02-28T00:00:00] 
    ) 
MEMBER [Measures].[12m average] AS 
    Avg(
    [Date].[Month].CurrentMember.Lag(11):[Date].[Month].CurrentMember, 
    [Measures].[Sales Quantity] 
) 
SELECT 
    { 
    [Measures].[Sales Quantity] 
    ,[Measures].[12m average] 
    } ON 0, 
NON EMPTY 
    [Product].[Product Name].Allmembers 
    * [TargetMths] ON 1 
FROM [Sales]; 
0

Tarih Aralığını WHERE yan tümcesinden alın ve [Satış Miktarı] için bu tarih aralığını kullanan hesaplanmış bir ölçü yapın. Sekme söylediği gibi

İlgili konular