我有一个带有小数price
字段的表的 SSAS 表格多维数据集。该多维数据集用作构建 SSRS 报告的数据源。在其中一份报告中,我只需要对价格高于作为参数给出的值的事实进行一些计算。该参数只需在查询设计器中拖放即可创建。但是我不需要搜索确切价格的记录,我只需要设置价格的上限。
于是我开始寻找 MDX 相关信息来手动修改查询设计器中内置的 MDX 查询。看来我应该使用Filter()
函数并将参数值传递给它的逻辑表达式。网络中有很多使用度量的逻辑表达式的示例。但是当我尝试在逻辑表达式中使用维度成员(我尝试过Membervalues
和Values
函数)时,我得到了不同的错误。我知道这个问题比使用 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;