我有这个日历表,它指定了每年的日期范围。它有像
这样的数据TBL1 :
start_date end_dt yr period_num
------------------------------------------------
2015-12-27 2016-01-22 2016 1
2015-01-24 2016-02-27 2016 2
2015-02-28 2016-03-26 2016 3
...
2016-11-27 2016-12-31 2016 12
2017-01-01 2017-01-01 2017 1
然后,我有另一张表,其中有产品条目,例如
TBL2 :
prod_id weeknum wkstartdate postingDate qty
----------------------------------------------------------------
1043890 1 2016-01-10 2016-01-18 3
1043890 2 2016-01-17 2016-01-18 6
1043890 3 2016-01-24 2016-01-18 2
1043890 4 2016-01-31 2016-01-18 0
...
1043890 50 2016-12-18 2016-01-18 1
1043890 51 2016-12-25 2016-01-18 2
1043890 52 2017-01-01 2016-01-18 7
表AllProd2在这里定义http://sqlfiddle.com/#!6/5836b/17
它基本上包含有关产品和某些层次结构信息的详细信息。 TBL2只有父ID的数据,但是一旦我加入表格,我需要显示优先级最高的ID(如果有孩子的话)。
我想做的是根据TBL1中定义的时间段建立年度日历。当我运行查询时,它需要计算当前一周的一年。然后从表2中捕获每个时期的数据,并使用如下所示的产品详细信息构建结果集:
它需要总结在TBL1中定义的给定月度期间的所有数量
期望的结果:
Prod_id ParentID Descrip Dept SubDept Class SubClass Data-12/27/15 Data-1/24/16 ....... Data-11/27/16 Data-1/1/17 52wTotal
1043889 1043890 14 RD abc def xyz gty 9 7 3 7 49 (summing up all qty for this product)
.....
我目前的解决方案已经过时,并且使用了几个阶段来做一些有点相似的事情,但希望简化这一点并使其高效。感谢任何帮助。
感谢。