我对Adventure Works DB有以下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 :(得分: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中不存在枢轴功能,并且是手动转动项目的唯一方法。
有一些创造性的解决方案,但它们都围绕手动解决方案,即提供您需要的列和逻辑。这样做的结果是,每次添加一年,您都必须手动将其添加到查询中。
如果有更好的解决方案,我会很高兴听到,我仍在寻找自己。
顺便说一句,你不需要评价函数的括号,所以我个人不打扰使用它们,而是每个人都使用它们。
答案 1 :(得分:0)
您可能需要ADDCOLUMNS()函数,但不太确定
答案 2 :(得分:0)
这是不可能的,因为这不是它应该如何工作。或者更确切地说,当您从DAX Studio移动到实际测量时,它会自动运行。
假设您在数据透视表中使用年份作为行标题,他们会自动对您的度量中的汇总结果强加过滤器(实际上过滤器已经应用于汇总的输入表)。
因此,只有相应年份的结果才会出现在您的汇总表中(即您也可以逐年删除该组的列。)