我的问题是如何通过MDX中的另一个字段过滤有效字段。
我有一张桌子:样品; 如果我使用sql来解决问题,就像这样:
select patient_id from samples where calc_test_type_id = 1;
我为此创建了维度:患者特征 层次结构:id level:id(样本表中的患者id),包括属性,名为'testA','testA'链接到calc_test_type_id。
所以我尝试了这样的MDX:
SELECT
{[Measures].[num_samples]} ON COLUMNS,
{
filter
(
distinct([Patient characteristic.id].[id].members),
[Patient characteristic.id].CurrentMember.Properties("calc_type") = 1
)
} ON ROWS
FROM [EIDCube]
[Measures].[num_samples]
用于计算calc_test_type_id = 1
的行数。
但我发现有些数据丢失了。那么如何找到所有合适的患者身份?
答案 0 :(得分:1)
您的代码看起来很好。首先尝试创建集。此外,我认为你不需要明确:
WITH SET [calc_type1] AS
FILTER
(
[Patient characteristic.id].[id].members)
,[Patient characteristic.id].CurrentMember.Properties("calc_type") = 1
)
SELECT
{[Measures].[num_samples]} ON 0,
[calc_type1] ON 1
FROM [EIDCube];
要检查返回的集合,我很想在没有该措施的情况下首先运行此脚本,如下所示:
WITH SET [calc_type1] AS
FILTER
(
[Patient characteristic.id].[id].members)
,[Patient characteristic.id].CurrentMember.Properties("calc_type") = 1
)
SELECT
{} ON 0,
[calc_type1] ON 1
FROM [EIDCube];