gpt4 book ai didi

mdx - 在 MDX 查询中使用 NOT IN

转载 作者:行者123 更新时间:2023-12-01 11:45:12 27 4
gpt4 key购买 nike

我试图从我的 MDX 选择查询中的维度中过滤掉一些点。我使用了 Filter(, ) 函数,如 http://mondrian.pentaho.com/documentation/mdx.php 中所述.正在运行的MDX如下

  SELECT {[Measures].[AMOUNT]} on 0,  
{Filter ([DIM1].MEMBERS, [DIM1].CurrentMember NOT IN {[DIM1].[A], [DIM1].[B], [DIM1].[C]})} on 1,
{[DIM2].[S]} on 2,
{[DIM3].[EFO]} on 3,
{[CURRENCY].[EUR]} on 4
from [CUBE]

但 Measures.AMOUNT 仍在考虑 Dim1.A、Dim1.B 和 Dim1.C。好心人能指出我的语法有什么问题吗?我也试过 Except(,) 。

最好的,罗汉

更新:

感谢 Marc 为我指明了正确的方向。我进行了更多测试,发现 Members 函数还返回一个点“All”,其中包括我维度上的所有点。因此,即使 Filter() 或 Except() 函数正确过滤了点,“全部”点仍包含所有点的值,因此将它们包含在 Measure.AMOUNT 计算中。我改为使用 Children 函数,它不返回“全部”点,所以我看到了想要的结果。更新了下面的 MDX

使用过滤器和 NOT IN 工作 MDX(警告:NOT IN 是 Mondrian 特定的操作)

 SELECT {[Measures].[AMOUNT]} on 0,  
{Filter ([DIM1].Children, [DIM1].CurrentMember NOT IN {[DIM1].[A], [DIM1].[B], [DIM1].[C]})} on 1,
{[DIM2].[S]} on 2,
{[DIM3].[EFO]} on 3,
{[CURRENCY].[EUR]} on 4
from [CUBE]

工作 MDX 使用 except

 SELECT {[Measures].[AMOUNT]} on 0,  
{except ( {[DIM1].Children}, {[DIM1].[A], [DIM1].[B], [DIM1].[C]} )} on 1,
{[DIM2].[S]} on 2,
{[DIM3].[EFO]} on 3,
{[CURRENCY].[EUR]} on 4
from [CUBE]

谢谢!

最佳答案

我会使用 Except 而不是过滤器功能如下:

Except ([DIM1].MEMBERS, {[DIM1].[A], [DIM1].[B], [DIM1].[C]} )

关于mdx - 在 MDX 查询中使用 NOT IN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15981323/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com