如何在 type2 维度表上应用日期范围过滤器?

Posted

技术标签:

【中文标题】如何在 type2 维度表上应用日期范围过滤器?【英文标题】:How to apply date range filter on a type2 dimension table? 【发布时间】:2017-03-03 06:29:42 【问题描述】:

我有一个表格报告,其中包含开始日期和结束日期作为参数。 我有一个类型为 2 的表,其中包含用户的开始日期和用户的结束日期。样本数据如下

user_id  partner  user_start_date   user_end_date
U1       XYZ      2016-07-10        2016-07-23
U1       XYZ      2016-07-24        2016-07-30
U1       ABC      2016-07-31        2999-12-31
U2       ABC      2015-10-01        2999-12-31

现在我需要在表格报告中获取所选日期范围内的所有有效用户。我尝试在计算字段下方应用并过滤报告

    IF ( [Start Date] >= [User Start Date] 
         AND [Start Date] <= [User End Date] 
         AND [User End Date] >= [End Date] ) 
     OR    
    ( [User Start Date] >= [Start Date] AND
      [User Start Date] <= [End Date] AND
      [User End Date] >= [End Date]
    )
THEN 'Show' ELSE 'Hide' END

想知道这是否正确以及是否有其他简单的方法。

【问题讨论】:

【参考方案1】:

这应该会更好:

IF ([User Start Date] >= [Start Date] AND [User End Date] >= [Start Date])
   AND
   ([User Start Date] <= [End Date] AND [User End Date] >= [End Date])

THEN 'Show' ELSE 'Hide' END

【讨论】:

以上是关于如何在 type2 维度表上应用日期范围过滤器?的主要内容,如果未能解决你的问题,请参考以下文章

使用 2GB+ 加速单个表上的 SQL 查询

如何编写按日期范围和维度成员值进行切片的 mdx 查询

当筛选日期范围超过 4 年时,Oracle 查询失去并行性

如何在数据透视表上应用过滤器?

mondrian mdx 过滤日期维度中年份级别的集合

如何在 django 中按日期范围过滤记录?