Ssas DAX分组与求和
我对AdventureWorks数据库有以下DAX查询:Ssas DAX分组与求和,ssas,dax,Ssas,Dax,我对AdventureWorks数据库有以下DAX查询: evaluate ( summarize ( 'Internet Sales', 'Product Category'[Product Category Name], 'Product Subcategory'[Product Subcategory Name], 'Product'[Product Name], 'Date'[Calendar Year],
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
在结果集中,每年都应该有一列
这可能吗?如果是,怎么做
谢谢您可能需要ADDCOLUMNS()函数,但不确定是否退出
这是不可能的,因为这不是它应该如何工作的。或者更确切地说,当您从DAX Studio移动到实际测量时,它会自动工作 假设在透视表中使用年份作为行标题,它们将自动对度量值中的汇总结果应用过滤器(实际上过滤器已应用于汇总的输入表) 因此,只有相应年份的结果才会出现在您的汇总表中(即,您不妨删除该年份的“按列分组”。类似于:
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中不存在透视功能,透视项目的唯一方法是手动
有一些创造性的解决方案,但它们都围绕着手动解决方案,即提供所需的列和逻辑。这样做的结果是,每次添加一年,您都必须手动将其添加到查询中
如果有更好的解决办法,我会很高兴听到,我仍然在寻找自己
顺便说一句,evaluate函数不需要括号,所以我个人不需要麻烦使用括号,而是每个括号都有自己的括号。未来的观众注意——DAX的新版本意味着这个构造要容易得多——使用SummaryColumns()代替。