我有一个项目数据集.项目从头到尾更改状态,状态更改的日期记录在表中(表名为"events" - 不是我的选择).看起来像这样(简化):
Date Status 2015-06-01 Start 2015-06-03 Stage 2 2015-06-07 Stage 3
在任何给定的日期范围内(动态确定),我希望能够看到哪些项目处于哪种状态.但是,对数据使用BETWEEN或其他查询只会提取那些在此期间状态发生变化的项目,而不是那些仍处于给定状态的项目.
我目前在Excel中创建了一个非常笨重的解决方案,它将行复制到状态更改日期之间的新行中,如下所示:
Date Status 2015-06-01 Project start 2015-06-02 Project start (copied) 2015-06-03 Stage 2 2015-06-04 Stage 2 (copied) 2015-06-05 Stage 2 (copied) 2015-06-06 Stage 2 (copied) 2015-06-07 Stage 3
此解决方案允许我在2015-06-06上查询项目的状态,并查看它仍处于第2阶段.
有什么方法可以使用mySql来提取相同的数据,但作为输出查询?我听说有人建议使用Calendar表,但我不确定它是如何工作的.我也看到有人推荐一个Cross Join,但是再一次,我从描述中无法理解它是如何工作的.
在此先感谢您的帮助!