2016-04-19 237 views
0

我想弄清楚如何模仿DAX查詢中的SQL分區。如果我使用SQL我會用類似這樣:目前DAX分區/每月總計

sum([Total Units]) over (partition by [Fiscal Month]) as ttl_mth_unit 

,Sum(Case when 'Order Line Item Details'[No of Transfers] = 1 then 'Order Line Item Details'[Total Units] end)) as single 

,Single/ sum('Order Line Item Details'[Total Units]) as perct_single 

我的數據是這樣的:

Fiscal Month Transfer Cnt Units 
2017-Apr   0   100 
2017-Apr   1   300 

理想的結果是這樣的:

Fiscal Month 0transfer 1transfer %0  %1  ttl 
2017-Apr  100   300  .25 .75 400 

或本:

Fiscal Mon th Transfer Cnt Units  %   ttl units 
2017-Apr   0    100 0.25  400 
2017-Apr   1    300 0.75  400 

這是我DAX代碼

evaluate(
filter(
addcolumns(
summarize(
'Order Line Details' 
,'Calendar'[Fiscal Month] 
,'Calendar'[Fiscal Year Nbr] 
,'Order Line Item Details'[No of Transfers] 
,"Total Units Test",'Order Line Item Details'[Total Units] 
), 
"Month Abbr", Mid('Calendar'[Fiscal Month],1,3) 
,"Month ID", 'Calendar'[Fiscal Year Nbr]&"-"&Mid('Calendar'[Fiscal Month],1,3) 
), 
[Fiscal Year Nbr]>(2015) 
) 
) 

我使用總結和SUMX的不同變化,但我或者使用了錯誤的功能或不設置它正確嘗試。

回答

0
CALCULATE([Total],DATESMTD(Date[calendarDate])) 

不要忘記在表格模型中將日期表標記爲日期表,否則這不會起作用。它讓我感受到了。

+0

謝謝!我可以使用以下方法將行轉換爲列:「0 Quantity」,計算(sum('Order Line Item Details'[Quantity]),'Order Line Item Details'[No of Transfers] = 0) – symn28

+0

我會嘗試使用計算功能。 – symn28

+0

不用擔心,如果這回答了您的問題,您是否可以將問題標記爲已回答?我發現這個博客非常翔實,不僅對於DAX,而且對SSAS總的來說,希望你也會發現它很有用https://blog.crossjoin.co.uk/category/dax/ –