我有一张详细说明项目时间表的表格。
ProjectID | StartMonth | EndMonth
---------------------------------
1 2 5
2 3 8
3 6 10
我想运行一个查询来为每个项目中的每个月生成一行。例如,ProjectID = 1,需要第 2 个月到第 5 个月的行。
ProjectID | Month
-----------------
1 2
1 3
1 4
1 5
2 3
2 4
2 5
2 6
2 7
2 8
3 6
3 7
3 8
3 9
3 10
我正在使用 Access,但为了 StackOverflow 社区的利益,我想构建一个与平台无关的解决方案。
想到的唯一技术是双for
循环,它将行与最内层循环中的每次迭代联合在一起。
有什么想法吗?
更新/澄清
StartMonth 和 EndMonth 是相对于儒略日期的整数值。例如,一个条目可能是:
ProjectID | StartMonth | EndMonth
---------------------------------
10 2 236
这意味着系统从开始的第 2 个月到第 236 个月一直在监控项目。它仅记录第 2 个月至第 236 个月之间发生的事件。
尽管有好几个月没有发生任何事件,也没有发生任何事情。PM 希望有一个表,该表包含所有月份的行,并且在系统中没有记录任何活动的月份都为零。