summarizecolumns erreur
-
summarizecolumns erreur
Bonjour à tous,
Voici mon problème rencontré :
Cas Usage
J’ai sur un modèle sémantique avec 4 tables de dimension ( D1,D2,D3,D4) + 2 Tables de Fait (F1 et F2). Les dimensions D1 D2 et D3 sont liées aux tables F1 et F2 en relation type “one to many”. Toutefois, la table D4 est reliée à ma D3 en many to many.
J’ai une mesure simple qui aggrège en SUMX une valeur dans F1, nous la nommerons ici M1 et une autre M2 , simple aussi dans la Table F2.
Sur ce modèle je dois créer une mesure qui doit répondre à ce qui suit :
A la granularité D1-D2-D3-D4 (clé) , si M1 > 1 sur la ligne dans F1 et que pour la même dans F2 on a M2 > 1 alors je garde M2.
De cette façon j’ai une mesure M3 qui retiendra spécifiquement les valeurs de M2 , pour une clé de jointure D1D2D3D4 entre F1 et F2.
DAX : SummarizeColumns
Afin d’éviter une relation dans mon modèle entre les 2 Tables de Fait , j’ai souhaité plus simplement avoir une table virtuelle en DAX en utilisant summarizecolumns .
Au moment de sa création, aucun soucis, mais dès lors la publication dans le Service, une erreur apparait : SummarizeColumns() and AddMissingItems() may not be used in this context.
Je découvre à ce moment que la transition de contexte n’est pas possible (https://www.sqlbi.com/articles/introducing-summarizecolumns/). Ma mesure va fonctionner donc dans des visuels Cards mais pas des Tableaux….je vais devoir me rabattre sur une solution avec summarize + addcolumns pour faire cette mesure et assurer la transition de contexte.
- Summarize me semblait être déprécié , comment aurez vous donc enviager la solution ?
- Par ailleurs utiliser Summarize avec ma relation entre D3 et D4 est une problème pour aggréger des colonnes de différentes tables -> j’ai du faire une relation “one to many” et sinon ramener mon infos dans D3 qui elle, était directement liée à ma table de fait.
- je pensais également que le query plan était moins bon que summarizecolumns..dommage pour moi si c’est bien le cas
- Ici ma proposition KO avec SummarizeColumns
M3 : =
VAR Mnt1= SUMMARIZECOLUMNS(D1[Code],D2[Code],D3[Code],”Mt init”,[Montant Init])RETURN
GROUPBY(
ADDCOLUMNS(Mnt1,”Mnt2″,[Montant 2]),
“Mnt3”,sumx(CURRENTGROUP(),if( [Montant Init]>1 && [Mnt2]>1 , [Mnt2])))- Ici avec Summarize
M3 : =
VAR Mnt1 = SUMMARIZE(‘F1’,D1[Code],D2[Code],D3[Code],”Mt init”,[Montant Init])
RETURN
GROUPBY(
ADDCOLUMNS(Mnt1,”Mnt2″,[Montant 2]),
“Mnt3”,sumx(CURRENTGROUP(),if( [Montant Init]>1 && [Mnt2]>1 , [Mnt2])))Questions
Pour toute ces raisons, pensez-vous que utilisez Summarize reste une bonne approche ?. Sinon comment aurez-vous gérer la mesure M3 ?
Est ce normal que le soucis avec SummarizeColumns soit uniquement sur le sService et pas au moment du développement ?
Bonne soirée ,
Gaelle
Connectez-vous pour répondre.