我试图基本上模仿在子查询中执行T-SQL计算的行为,并在DAX中的外部查询中总结该计算的结果。
在叶级别,我有以下简单的计算:
ROUND((SUMX('Profile Category Views', 'Profile Category Views'[Visit]) * 1.52 ) , 0)
每行'Profile Category Views'[Visit] = 1
。
此计算在叶级别上是正确的,但是当我汇总总和的结果时,计算将在运行时应用,在更高的级别上,使结果倾斜。
如上图所示 - 计算已应用于细节行。但是,总计= 43,表示在对细节行的原始总和求和之后再次应用计算,而不是在应用初始计算后所有细节行的总和,即= 44。
答案 0 :(得分:0)
如果你想总计四舍五入的总数,但仍然是总计的总和,比如
(SUMX('Profile Category Views', ROUND('Profile Category Views'[Visit] * 1.52,0) ))
,即在最低级别详细说明。
答案 1 :(得分:0)
它有点难看,但这可能适合你:
= SUMX(VALUES('Profile Category Views'[Geography]),
ROUND(
SUMX(
FILTER('Profile Category Views',
'Profile Category Views'[Geography] = EARLIER('Profile Category Views'[Geography])),
'Profile Category Views'[Visit] * 1.52)
,0))
对于每个[Geography]
值,我们采用小计并将其舍入。 (FILTER
是为了确保内部SUMX
一次增加一个[Geography]
值。EARLIER
将从外部SUMX
返回过滤器上下文,即当前的[Geography]
值。)