我有一个带有小数price
字段的表的SSAS表格多维数据集。该多维数据集用作构建SSRS报告的数据源。在其中一个报告中,我只需要对价格高于作为参数给出的值的事实进行一些计算。这些参数只是通过在Query Designer中拖放创建的。但我不需要搜索具有确切价格的记录,我只需要设置价格的上限。
因此,我开始寻找与MDX相关的信息来手动修改在Query Designer中构建的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;