Microsoft SQL Server中存在一个表,其中包含记录标识,开始日期,结束日期和数量。针对日期范围的SQL查询,多个开始/结束时间
这个想法是,对于每个记录,范围内的数量/总天数=每日数量。
鉴于包含所有可能日期的表存在,我如何在SQL Server中生成结果集,使其看起来像下面的示例一样?
EX:
RecordID | Start Date | End Date | Quantity
1 | 1/1/2010 | 1/5/2010 | 30000
2 | 1/3/2010 | 1/9/2010 | 20000
3 | 1/1/2010 | 1/7/2010 | 10000
Results as
1 | 1/1/2010 | QTY (I can do the math easy, just need the dates view)
1 | 1/2/2010 |
1 | 1/3/2010 |
1 | 1/4/2010 |
1 | 1/3/2010 |
2 | 1/4/2010 |
2 | 1/5/2010 |
2 | 1/6/2010 |
2 | 1/7/2010 |
2 | 1/8/2010 |
2 | 1/9/2010 |
3 | 1/1/2010 |
3 | 1/2/2010 |
3 | 1/3/2010 |
3 | 1/4/2010 |
3 | 1/5/2010 |
3 | 1/6/2010 |
3 | 1/7/2010 |
分组的日期,我能得到那么得到的那一天量的总和不过最终的结果集不能总因为这可能会排除某些记录用户提供过滤器在路上。
EDIT
为了澄清,这仅仅是一个示例。过滤器是无关紧要的,因为我可以加入到侧面来获取结果中与记录ID相关的详细信息。
真实数据包含每周增加的N个记录,日期从不相同。可能有2000条记录具有不同的开始日期和结束日期......这是我想为其生成视图。我可以正确加入数据,以完成我需要的其余部分。
我还应该提到这是针对过去,现在和将来的数据。我很想摆脱一个临时的日期表。我使用递归查询来获取50年内存在的所有日期,但这超出了MAXRECURSION对于视图的限制,我无法使用。
我不知道我的理解对用户提供的滤光器的信息。你能提供更多细节吗? – bobs 2010-07-20 21:50:39
这些过滤器真的无关紧要。我会把这个列表加入到主列表中,其中包含关于数量等的信息,并可以使用这些事实来推导出所有的值。 – Mohgeroth 2010-07-20 23:09:38