0

我有一个带有小数price字段的表的 SSAS 表格多维数据集。该多维数据集用作构建 SSRS 报告的数据源。在其中一份报告中,我只需要对价格高于作为参数给出的值的事实进行一些计算。该参数只需在查询设计器中拖放即可创建。但是我不需要搜索确切价格的记录,我只需要设置价格的上限。

于是我开始寻找 MDX 相关信息来手动修改查询设计器中内置的 MDX 查询。看来我应该使用Filter()函数并将参数值传递给它的逻辑表达式。网络中有很多使用度量的逻辑表达式的示例。但是当我尝试在逻辑表达式中使用维度成员(我尝试过MembervaluesValues函数)时,我得到了不同的错误。我知道这个问题比使用 T-SQL 更棘手。

但是如何解决呢?是否可以通过数值过滤掉维度表?

脚本如下:

SELECT 
  NON EMPTY 
    {
      [Measures].[# состоявшихся аптечных визитов (с препаратами)]
    } ON COLUMNS
FROM 
(
  SELECT 
    StrToSet
    (@[ПродажиаптекЦена]
     ,CONSTRAINED
    ) ON COLUMNS
  FROM [Аптечные визиты]
)
WHERE 
  IIF
  (
    StrToSet(@[ПродажиаптекЦена],CONSTRAINED).Count = 1
   ,StrToSet
    (@[ПродажиаптекЦена]
     ,CONSTRAINED
    )
   ,[Продажи аптек].[Цена].CurrentMember
  )
CELL PROPERTIES 
  Value
 ,BACK_COLOR
 ,FORE_COLOR
 ,FORMATTED_VALUE
 ,FORMAT_STRING
 ,FONT_NAME
 ,FONT_SIZE
 ,FONT_FLAGS;
4

0 回答 0