2017-08-15 114 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