2017-08-15 111 views
1

我在我的事实表中有一个日期列,并且由于某些客户端API要求,我需要将此列格式化为字符串,同时使用SUMMARIZE函数对数据进行分组。下面是示例查询,这是我现在用:SSAS表格 - 如何使用DAX汇总函数中的FORMAT函数

EVALUATE(
CALCULATETABLE(
    ADDCOLUMNS(
     SUMMARIZE(
      'BreakTable', 
      'BreakTable'[Column1], 
      'BreakTable'[Column2], 
      'BreakTable'[DateColumn1], --This needs to be formatted 
     ), 
     "BreakCount",FORMAT('BreakTable'[BreakCount],"#,##0") 
    ) 
)) 

我在总结使用Format函数尝试,并且默认情况下不工作。我无法将新列添加到FactTable中,因此需要在查询自己时解决此问题。

有没有其他办法可以达到这个目的?任何帮助表示赞赏。

根据建议,添加更多信息。

我们使用SQL Server 2014

回答

0

您可以使用SELECTCOLUMNS()函数。此函数与ADDCOLUMNS()函数的工作方式类似,只是它只返回您指定的列。

这里是你可以如何改变现有查询的例子:

EVALUATE(
    SELECTCOLUMNS(
     SUMMARIZE(
      'BreakTable', 
      'BreakTable'[Column1], 
      'BreakTable'[Column2], 
      'BreakTable'[DateColumn1], 
     ), 
     "Column1", [Column1], 
     "Column2", [Column2], 
     "DateColumn1", FORMAT([DateColumn1],"YourFormatHere"), --Format your DateColumn here 
     "BreakCount",FORMAT('BreakTable'[BreakCount],"#,##0") 
    ) 
) 

编辑:

请注意SELECTCOLUMNS()函数只能从SQL Server 2016和起来。

+0

SELECTCOLUMNS仅在Sql Server 2016中可用,我们仍然在以前的版本。 – AjayK

+1

是的。也许你可以为你的文章添加一个Sql Server 2014的标签来澄清这一点:-) – dybzon