0

我有一个按客户和日期显示销售额的模式。要求能够显示每个客户在上一季度同一日期的销售额(所以 21/08/2015 - 21/05/2015)。我使用 DATEADD(qq,-1,FullDate) 在我的日期维度中添加了一个 ParallelQuarterDate 列。

为了能够满足要求,我创建了事实表的别名,该别名在 Date 维度中的 ParallelQuarterDate 字段上连接,而普通事实表在 Date 维度中的正常 DateKey 字段上连接。这两个事实表都加入了客户维度,以便能够按客户进行报告。

除了我尝试按月汇总销售额之外,这一切都完美无缺,这是因为每个月的天数不同。因此,在日期维度中,相对于日期 31/12/2015,ParallelQuarterDate 为 30/09/2015,相对于 30/12/2015,它又是 30/09/2015,所以它是重复计算的。显然,对于像 30/06/2015 这样的日期,您会得到相反的效果,然后 ParallelQuarterDate 的 ParallelQuarterDate 为 30/03/2015,绕过了 3 月也有第 31 天的事实。

在此处输入图像描述

按月实现正确聚合的最佳方法是什么?我正在考虑创建一个具有月份粒度的日期表,然后将别名事实表加入日期维度和客户维度。

请让我知道你的想法。谢谢!

4

1 回答 1

1

看起来这些值仅在您聚合到月份级别时才有效,因此我将对 N 月运行一个聚合查询,然后对 N-3 月运行另一个聚合查询。跨季度(或数月,甚至数年)的加入天数无效。

于 2015-08-21T22:09:20.997 回答