我是SSAS和MDX的新成员。我们的数据结构如下:
FactTable(医疗案例):
ID | Date | Result Test A | Result Test B | Patient ID
1 | 1.9.15 | 1 | -1 | Patient_1
2 | 1.9.15 | -1 | 1 | Patient_1
3 | 1.9.15 | 1 | -1 | Patient_2
4 | 1.9.15 | 0 | -1 | Patient_2
5 | 1.9.15 | -1 | 0 | Patient_2
每个案例的结果都是测试a或测试b。案例可能包含测试a和测试b的结果,但在大多数情况下,测试a的结果被填充,测试b的结果为空或反转。
患者维度:
ID | Firstname | Lastname | Date of Birth
1 | Max | Mustermann | 1.9.1989
2 | Tina | Mustermann | 1.9.1989
已更新
我已添加结果维度
结果测试维度:
ID | Name
-1 | Undefined
0 | Negative
1 | Positive
2 | Suspect
结果测试B维度:
ID | Name
-1 | Undefined
0 | Negative
1 | Positive
我们之间有一个外键关系
除了这个结构,我们还有列日期的维度。
我们的测量结果:
我们的问题是我们想要为患者数量创建一个度量,并将其与结果相结合。因此,当我们过滤结果测试A和结果测试B时,我们得到以下结果。
Number of Patients (Filter: [Result Test A].Positive, [Result Test B].Positive) -> 1
Number of Patients (Filter: [Result Test A].Negative, [Result Test B].Negative) -> 1
Number of Patients (Filter: [Result Test A].Positive) -> 2
Number of Patients (Filter: [Result Test B].Positive) -> 1
我不知道如何实现这项测量。这甚至是可能的,还是我必须为患者创建另一个FactTable?
答案 0 :(得分:1)
我对您的FactTable感到困惑,结果测试是否有措施?你如何处理FactTables中的字符串?
此代码未经过测试,但您可以尝试:创建查询成员
编辑:添加了未经测试的代码,我对您的多维数据集结构一无所知,所以我猜了一下。
WITH MEMBER [Measures].[Patients Results A] AS
Sum
(
[Patient].[PatientID].[PatientID]
, IIf
(
( [Measures].[Medical Case Ms], [Result A].[Name].CurrentMember ) = NULL
, NULL
, 1
)
)
MEMBER [Measures].[Patients Results B] AS
Sum
(
[Patient].[PatientID].[PatientID]
, IIf
(
( [Measures].[Medical Case Ms], [Result B].[Name].CurrentMember ) = NULL
, NULL
, 1
)
)
MEMBER [Positive A] AS
( [Measures].[Patients Results A], [Result A].[Name].&[1] )
MEMBER [Positive B] AS
( [Measures].[Patients Results B], [Result B].[Name].&[1] )
MEMBER [Positive A&B] AS
( [Positive A] + [Positive B] )
SELECT
{ [Positive A], [Positive B], [Positive A&B] } ON COLUMNS
FROM [Cube]
在上面的代码中创建了积极A和积极B度量的成员,您必须为您在问题中指定的度量创建缺少的成员。如果这有用,请告诉我