Sql server SQL Server从表数据构建动态日历并从其他表中选择数据
我有一个日历表,它指定了每年的日期范围。它有如下数据 TBL1:Sql server SQL Server从表数据构建动态日历并从其他表中选择数据,sql-server,pivot,parent-child,Sql Server,Pivot,Parent Child,我有一个日历表,它指定了每年的日期范围。它有如下数据 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-
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
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
然后,我有另一个表,其中有产品条目,例如
TBL2:
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
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在此定义
它基本上有产品的详细信息和一些层次结构信息。TBL2只有父ID的数据,但一旦我加入表,我需要显示具有最高优先级的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)
.....
我有一个当前的解决方案,它已经过时,并且使用了几个阶段来做一些类似的事情,但希望能够简化这个过程并使其高效。谢谢你的帮助
谢谢。为了简化操作,有人能帮我从这些日期范围构建列视图吗?这里有很多关于如何构建动态轴的示例。。每天都会出现3到4个。。您是否查看过其中任何一个并尝试自己构建查询?我已经构建了一些透视表,但是,我认为这种情况是独特的。有些作品我不知道该如何建造。我很快就会发布一个样本。我几乎已经弄明白了。只需要一点帮助。所以我这里有一张日历表,我几乎把它弄明白了。只需要一点帮助。所以我有这个日历表,这里有两个标志(M,W)表示月份或周。我需要加入TBL2(上面的),它有一个周日期字段。因此,我将在weekstartdate使用Cal table on start date(带W标志)在上面的TBL2中加入项目,但如果weekstartdate介于开始日期和结束日期之间,我需要返回带有“M”标志的startdate。这有意义吗?