为了从发票中获取正确的值,我们需要在属性“发票 ID”级别和报告级别强制执行此计算。
此时,我们将此属性添加到维度,但报告生成的 SQL 未按发票 ID 字段分组。
select a11.ID_EMISOR,
max(a13.DESCRIPCION),
max(a13.COD_EMPRESA_DB2),
sum((a11.UNIDADES * a11.PRECIO_UNITARIO)) WJXBFS1
from TABLE a11
join DIM_1 a12
on (a11.ID_PAIS_EMISOR = a12.ID_PAIS)
join DIM_2 a13
on (a11.ID_EMISOR = a13.ID_EMPRESA)
group by a11.ID_EMISOR
有没有办法获得这个发票 ID 级别,尽管它不在报告中?
SQL 应该是这样的:
select a11.ID_EMISOR,
max(a13.DESCRIPCION),
max(a13.COD_EMPRESA_DB2),
a11.COD_FAC,
sum((a11.UNIDADES * a11.PRECIO_UNITARIO)) WJXBFS1
from TABLE a11
join DIM_1 a12
on (a11.ID_PAIS_EMISOR = a12.ID_PAIS)
join DIM_2 a13
on (a11.ID_EMISOR = a13.ID_EMPRESA)
group by a11.ID_EMISOR,
a11.COD_FAC
之后,Microstrategy 应在报告级别对结果进行分组。 (如果我们将属性添加到报告中但将其从网格中移除,我们应该获得的性能相同)