因此,我无法找到解决问题的方法。
我们刚刚实施了许多事实/维度,以便将缓慢变化的数据带入我们的仓库。场景是我们监控故障单并且我们实施了SCD,因此我们可以运行历史上显示打开故障单的报告(上周或本月1日),而不是DB当前状态。我想表明在几天内在趋势图中打开了多少张票。
Example Data
ID; Open Count; Effective From; Effective To;
1; 1; 28/02/2016; 05/03/2016
2; 1; 02/03/2016; 04/03/2016
3; 1; 03/03/2016; 04/03/2016
我想在右边制作图表,但我最后得到左边的图表。我编写了一个使用的简短代码片段。
> SELECT DT.Date, SUM(Open_Count) FROM ExampleDate ED LEFT JOIN
> DateTime Dimension DT ON ED.Effective_From = DT.Date WHERE
> ED.Effective_From >= '28/02/2016' AND ED.Effective_From <
> '06/03/2016' ORDER BY DT.Date
答案 0 :(得分:0)
我将假设您的事实表布局意味着ID:1被认为在28/2和5/3之间打开
问题是你的加入 - 你所追求的结果要求在他们打开的每一天都重复票证记录...尝试:
select
DT.Date,
SUM(Open_Count)
FROM
DateTime_Dimension DT
inner JOIN ExampleDate ED ON DT.Date >= ED.Effective_From and DT.Date <= ED.Effective_To
WHERE
ED.Effective_From >= '28/02/2016' AND ED.Effective_From < '06/03/2016'
GROUP BY
DT.Date
ORDER BY
DT.Date