【发布时间】:2014-07-16 17:58:21
【问题描述】:
我有一个包含发票行项目的事实表,由于这些行项目是订阅,因此涉及开始日期和结束日期
LineItem Customer Product OrderDate StartDate EndDate
1 Customer A Product A 1/1/2013 1/1/2013 3/1/2013
2 Customer A Product B 1/1/2013 1/1/2013 4/1/2013
3 Customer B Product A 1/1/2013 2/1/2013 6/1/2013
客户需要 Excel(数据透视表)中选定日期的活跃客户的列表。他们想要选择一个日期,如果该日期介于任何发票行项目记录的开始日期和结束日期之间,则应显示客户。例如:
如果选择了“2013 年 1 月 5 日”,则客户列表应返回 (LineItem: 1, 2): 客户A
如果选择“2/10/2013”,则客户列表应返回 (LineItem: 1,2,3): 客户 A 客户 B
如果选择了“2013 年 5 月 15 日”,则客户列表应返回 (LineItem: 3): 客户 B
接下来,客户也想按产品过滤,所以:
如果选择了“2013 年 3 月 20 日”并选择了产品 A,则客户列表应返回 (LineItem: 3): 客户 B
在 SQL 中这很容易:
Select Distinct Customer from Fact where @SelectedDate between StartDate and EndDate
我不确定如何在 SSAS 中解决这个问题,以及如何处理“选定日期”中的问题,这应该是另一个维度吗?如果是这样,它与事实表有何关系?
或者这可以通过其他方式在 Excel/PowerPivot 端完成吗?
此外,我最初的方法是创建一组命名客户 - 但我不确定如何根据日期范围等创建它。
任何帮助将不胜感激! 谢谢
【问题讨论】:
-
开始和结束日期总是一个月的第一天吗?
-
不,它们最多可以相隔 485 天。
-
我的问题更针对出现在 StartDate 和 EndDate 中的不同日期的数量。是否只有一个月的第一天?在这种情况下,对于三年的数据,我们将只有 36 个不同的条目。但是,如果每一天都能出现,我们已经有超过 1000 个不同日期的三年数据。
-
每天都会出现。我知道如果我们只有一月初会容易得多。 如果开始和结束日期是月份而不是日期,您打算如何处理这种情况?我在想我们可以创建一个库存类型的无事实事实表,其中包含每个月订阅等的记录。
-
这也是我的想法。
标签: sql ssas mdx powerpivot