2014-01-07 126 views
0

我對Adventure Works公司DB以下DAX查詢:DAX分組和總和

evaluate 
(
    summarize 
    (
     'Internet Sales', 
     'Product Category'[Product Category Name], 
     'Product Subcategory'[Product Subcategory Name], 
     'Product'[Product Name], 
     'Date'[Calendar Year], 
     "Total Sales Amount", sum('Internet Sales'[Sales Amount]) 
    ) 
) 
order by 'Product Category'[Product Category Name], 
     'Product Subcategory'[Product Subcategory Name], 
     'Product'[Product Name] 

這將返回在這種格式的數據:我想這回,因爲這

Accessories Bike Racks Hitch Rack - 4-Bike 2008 22920 
Accessories Bike Racks Hitch Rack - 4-Bike 2007 16440 
Accessories Bike Stands All-Purpose Bike Stand 2008 20670 

CATEGORY  SUB CATEGORY PRODUCT     2007  2008  2009  2010 
Accessories Bike Racks Hitch Rack - 4-Bike 22920 16440  22920 16440 
Accessories Bike Stands All-Purpose Bike Stand 20850 20670  22920 16440 

結果集中應該每年都有一列。

這可能嗎?如果是的話如何?

感謝

回答

0

這是不可能的,因爲這不是它是如何工作的。或者說,當您從DAX Studio移動到實際度量時,它會自動工作。

假設您在數據透視表中使用年份作爲行標題,它們將自動對您的度量中的彙總結果強加一個過濾器(實際上過濾器已適用於彙總輸入表)。

因此,只有相應年份的結果纔會顯示在您的彙總表格中(也就是說,您也可以按年刪除該列)。

1

喜歡的東西:

EVALUATE 
ADDCOLUMNS(
    SUMMARIZE(
     'Internet Sales', 
     'Product Category'[Product Category Name], 
     'Product Subcategory'[Product Subcategory Name], 
     'Product'[Product Name] 
     ), 
"Total Sales Amount", CALCULATE(SUM('Internet Sales'[Sales Amount])), 
"2007", CALCULATE(SUM('Internet Sales'[Sales Amount]), 'Date'[Calendar Year] = 2007) 
"2008", CALCULATE(SUM('Internet Sales'[Sales Amount]), 'Date'[Calendar Year] = 2008) 
"2009", CALCULATE(SUM('Internet Sales'[Sales Amount]), 'Date'[Calendar Year] = 2009) 
) 
ORDER BY 'Product Category'[Product Category Name], 
    'Product Subcategory'[Product Subcategory Name], 
    'Product'[Product Name] 

DAX並不像友好像SQL其它語言的一個解決方案,謬以千里「。 DAX中不存在透視功能,並且只能手動透視項目。

有一些創造性的解決方案,但他們都圍繞手動解決方案,即提供所需的列和邏輯。這樣做的結果是,每增加一年,您都必須手動將其添加到您的查詢中。

如果有更好的解決方案,我會很高興聽到,我仍然在看自己。

順便說一句,你不需要括號的評估功能,所以我個人不打擾使用它們,但對每個他自己的。