我有一个关于在一段时间内(开始和结束时间之间)选择所有数据的建模问题 . 我可能会最终使用Tabular / PowerPivot,但它也可以是PowerBI或excel直接查询数据库 .
Summary: 我有一个带有StartDateTime和EndDateTime列的事实表(Fact_Session) . 用户需要在开始和结束时间之间查看数据 . 第二个事实表(fact_Products)列出了用户使用特定设备扫描的产品及其扫描时间 .
Requirement: 当用户选择开始和结束时间时,他们需要查看:
-
在Fact_Session中,开始和结束时间之间的所有会话 .
-
所有产品在开始和结束时间之间扫描,在Fact_Products中
这很可能意味着两个数据透视表,其中数据通过维度链接,特别是时间维度 .
Issues/Questions:
-
我需要两个时间维度,一个用于startTime,一个用于EndTime?
-
如何将开始和结束时间之间的时间段绑定到FactProducts表?
感谢任何有关此的帮助和建议 .
半完整(无时间维度)逻辑图的图像如下所示 .
3 回答
是的,您需要两个单独的日期/时间维度 . 引用需要是独立的 . 查看Kimball Group中的这些信息
虽然您不需要在数据库中创建一个完全独立的表,但不确定您对维度建模有多熟悉,因此视图就足够了,因为它允许独立引用 .
我认为显示所有产品和所有会话的要求限制了选项 . 如果您不需要显示详细信息,则可以使用断开连接的日期表,其中一个或两个,然后按照(在一个日期表的情况下)的行生成度量:
其中MIN(日历[日期])将是所选的最低日期,MAX是最高日期 . 但这不适用于Fact_Products的行级详细信息 . 它只适用于措施 .
如果您通过Excel交付,则可以通过让用户从自动提供范围的时间线中选择日期来更改方法 . 获得范围后,您可以拥有一个连接日期表,它将为您提供所需的详细信息 . 心连心
我有相同的情况,因为我需要显示基于所选日期的任务列表,我使用的是这样的东西
日期表不应该链接到事实表,然后我使用active> 0作为您的数据透视表中的过滤器
你可以在这里下载模型https://app.powerbi.com/view?r=eyJrIjoiYjkwZTMyY2EtYTE1Ny00OWQzLWJlZDktNjkxN2JkOTA3ZmIxIiwidCI6ImI2ZWM3ZGYwLTc1ZGEtNDc2Ni04MGI0LWNlYzM1MzZlNGYzYSIsImMiOjEwfQ%3D%3D