0

我对 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

结果集中每年都应该有一列。

这可能吗?如果是这样怎么办?

谢谢

4

3 回答 3

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 中不存在透视函数,透视项目的唯一方法是手动。

有一些创造性的解决方案,但它们都围绕手动解决方案,即提供您需要的列和逻辑。这样做的结果是,每次添加一年时,您都必须手动将其添加到查询中。

如果有更好的解决方案,我会很高兴听到,我仍在寻找自己。

顺便说一句,评估功能不需要括号,所以我个人不费心使用它们,而是每个人自己使用。

于 2015-08-12T11:42:04.570 回答
0

您可能需要 ADDCOLUMNS() 函数,但不确定

http://technet.microsoft.com/en-us/library/gg492204.aspx

于 2014-01-10T14:16:51.930 回答
0

这是不可能的,因为这不是它应该如何工作的。或者更确切地说,当您从 DAX Studio 转移到实际测量时,它会自动运行。

假设您在数据透视表中使用年份作为行标题,它们会自动对度量中的汇总结果施加过滤器(实际上过滤器已经应用于汇总的输入表)。

因此,只有相应年份的结果才会出现在您的汇总表中(即,您也可以按年份逐列删除分组)。

于 2015-05-29T08:17:14.410 回答