从组内获取第一个日期和时间

Get the first date and time from within a group

我们被问到的许多问题都与两个事件之间经过了多长时间有关(例如-患者入院,进行了一些评估)。有些事件会发生多次。如何找到每次就诊时事件发生的第一个日期和时间?

模型中有一个 table 称为临床查询。其中 table 是一个名为 Activity 日期时间的列。有一个名为 Date 的计算列和另一个名为 Time 的列基于 Activity 日期时间。这些与日期维度 table 和时间维度 table.

相关

我已经设法构建了一个查询,它给我提供了最早的日期,而且它给了我最早的时间。但是,它 return 是最早的时间,与日期无关。例如,如果患者进行了两次评估,一次在 2017 年 1 月 1 日 23:59,另一次在 2017 年 1 月 2 日 00:01,则查询 returns 1/1 /2017 年 00:01.

WITH
MEMBER [Measures].[FirstInterventionDate] AS (
    NonEmpty(existing{[Date].[Fiscal].[Date].MEMBERS}, {[Measures].[Clinical Queries Interventions Performed]}).Item(0).Name
)

MEMBER [Measures].[FirstInterventionTime] AS (
    NonEmpty(existing{[Time].[Time].[Time].MEMBERS}, {[Measures].[Clinical Queries Interventions Performed]}).Item(0).Name
)

SELECT {[Measures].[Clinical Queries Interventions Performed], [Measures].[FirstInterventionDate], [Measures].[FirstInterventionTime]} on 0,
    NON EMPTY([Clinical Queries].[Account Number].Children) ON 1
FROM (
SELECT { [Clinical Queries].[InterventionID].&[3000195],
    [Clinical Queries].[InterventionID].&[3000186],
    [Clinical Queries].[InterventionID].&[3000184],
    [Clinical Queries].[InterventionID].&[3000182],
    [Clinical Queries].[InterventionID].&[3000184] } ON 0
FROM (
SELECT { [Clinical Queries].[Account Number].&[ACCT992],
    [Clinical Queries].[Account Number].&[ACCT064] } ON 0
FROM [Model]
))

我需要更改什么才能使其 return 成为该最早日期的最早日期和时间。对于上面的示例,它将是 1/1/2017 在 23:59.

试试下面的代码:

select 
    {[Clinical Queries].[Account Number].&[ACCT992],
     [Clinical Queries].[Account Number].&[ACCT064]} *
    {[Measures].[Clinical Queries Interventions Performed]} on 0,
    Generate(
        {[Clinical Queries].[InterventionID].&[3000195],
         [Clinical Queries].[InterventionID].&[3000186],
         [Clinical Queries].[InterventionID].&[3000184],
         [Clinical Queries].[InterventionID].&[3000182],
         [Clinical Queries].[InterventionID].&[3000184]},
        Head(
            NonEmpty(
                [Clinical Queries].[InterventionID].CurrentMember *
                [Date].[Fiscal].[Date].Members *
                [Time].[Time].[Time].Members,
                [Measures].[Clinical Queries Interventions Performed]
            ),
            1
        )
    ) on 1
from [Model]

您可能对性能不太满意,所以我强烈建议您将逻辑移动到 DWH 级别:添加一个度量字段,如 201703301020 (3/30/2017 10:20) 和 Min 聚合,您可以使用 MDX 计算的度量值结合 left() right() 函数来解析值。