我有这样的表:
Country Project InvCode InvName Site WorkLoad StartDate EndDate
USA 1234 2020 Jane Box 101 20 2012-02-10 2013-04-15
USA 1234 2020 Jane Box 102 35 2013-02-10 2013-07-15
USA 2222 2140 James Smith 101 5 2012-10-10 2013-12-05
USA 2222 2590 Susan Falco 410 12 2013-05-10 2015-12-20
USA 2250 2140 James Smith 401 8 2013-04-01 2013-07-18
我在表中添加了 4 列:StartYear、StartMonth 来自 StartDate 和 EndYear、EndMonth 来自 EndDate(希望它们有助于编写查询)
StartYear StartMonth EndYear EndMonth
2012 2 2013 5
2013 2 2013 7
2012 10 2013 12
2013 5 2015 12
2013 4 2013 7
所需的输出将如下所示。我无法适应所有月份,但它应该从 EndDate 开始达到最大 Month-Year。在我的表中,我将列从 2013 年 1 月到 2015 年 12 月
country|Project|InvCode|INvName|Site|StartDate|EndDate|Jan-13|Feb-13|Mar-13|Apr-13|May-13|.
USA|1234|2020|Jane Box |101|2012-02-10|2013-05-15| 20 20 20 20 0
USA|1234| 2020|Jane Box |102|2013-02-10|2013-07-15| 0 35 35 35 35
USA|2222|2140|James Smith|101|2012-10-10|2013-12-05| 5 5 5 5 5
USA|2222| 2590|Susan Falco|410|2013-05-10|2015-12-20| 0 0 0 0 12
USA|2250|2140|James Smith|401|2013-04-01|2013-07-18| 0 0 0 8 8
如果 StartDate 在 2013 年 1 月之前,则从 2013 年 1 月开始并分配相同的值,例如,在 EndDate 之后分配 0 到最大 EndDate 到 EndDate 的每个月为 20。
当 StartDate 在 2013 年 1 月之后,为 StartDate 的前一个月分配 0 并从与 StartDate 中的月份相等的月份开始,为每个月分配相同的值,直到 EndDate,例如,StartDate 是 2013 年 2 月,EndDate是 2013 年 7 月,工作量 = 35,对于 2013 年 1 月的值将被分配 0,从 2013 年 2 月到 2015 年 7 月的值将被分配 35。在结束日期之后分配 0 到最大结束日期。
我会感谢你的帮助!