2017-08-15 4 views
1

J'ai une colonne Date dans ma table de faits, et en raison de certaines exigences de l'API client, je dois formater cette colonne en tant que chaîne lors du regroupement de données à l'aide de la fonction SUMMARIZE. Ci-dessous l'exemple de requête, que j'utilise:SSAS Tabular - Comment utiliser la fonction FORMAT dans la fonction de résumé DAX

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

J'ai essayé d'utiliser la fonction FORMAT SUMMARIZE, et cela ne fonctionne pas par défaut. Je ne peux pas ajouter une nouvelle colonne à FactTable, donc j'ai besoin de résoudre ce problème lors de l'interrogation.

Existe-t-il un autre moyen d'y parvenir? Toute aide est appréciée.

Selon la suggestion, en ajoutant plus d'informations.

Nous utilisons Sql Server 2014.

Répondre

0

Vous pouvez utiliser la fonction SELECTCOLUMNS(). Cette fonction fonctionne de la même manière que la fonction ADDCOLUMNS(), sauf qu'elle ne renvoie que les colonnes que vous spécifiez.

Voici un exemple de la façon dont vous pouvez modifier votre requête existante:

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") 
    ) 
) 

EDIT:

S'il vous plaît noter que la fonction SELECTCOLUMNS() est uniquement disponible à partir de SQL Server 2016 et plus.

+0

SELECTCOLUMNS est uniquement disponible dans Sql Server 2016, nous sommes toujours sur la version précédente. – AjayK

+1

True. Peut-être que vous pouvez ajouter un tag pour Sql Server 2014 à votre message pour clarifier ceci :-) – dybzon