让我们假设您需要跟踪采购订单项目交付在给定时间段内的演变情况,并且由于某种原因,此交付可能会遭遇逆转。比起你有一个表,至少有这些字段来存储你需要的数据:PO,POItem,QtyDelivered,DateFrom,DateTo,显然你可能想要保存更多关于某个项目的数据,但是我省略了一些字段来简化说明。 QtyDelivered字段包含累计交货金额,该字段从0到您PO中请求的金额,因此如果您的采购订单有100个物料单位的请求,QtyDelivered将从0到100。但是,如果交货遭受逆转,这使得QtyDelivered遭受减少。 DateFrom和DateTo保存了QtyDelivered保持相同值的日期间隔。假设表包含下面这些记录:计算一段时间内两行之间的差异
OBS:插入顺序并不总是服从,这就是为什么我搞砸了标识的
Id PO POItem QtyDelivered DateFrom DateTo 3 4500000000 10 39 15/10/2014 15/10/2014 4 4500000000 10 60 15/10/2014 15/10/2014 1 4500000000 10 55 01/10/2014 13/10/2014 7 4500000001 10 40 16/10/2014 17/10/2014 5 4500000001 10 5 14/10/2014 16/10/2014 6 4500000001 10 36 16/10/2014 16/10/2014 2 4500000000 10 5 13/10/2014 15/10/2014 8 4500000001 10 2 17/10/2014 18/10/2014
现在假设你需要知道的给定材料的多少个单位已于2014年10月2日至2014年10月14日交付。那么,从2014年10月1日到2013年10月13日,采购订单4500000000件10的交货量为55件,从2014年10月13日到2014年10月15日,这件商品的交货量为5件,因为它遭受了逆转,所以有-50的负变化。请注意,在这种情况下,您选择的时间段在两条记录的DateFrom和DateTo之间,但如果您选择了2014年10月1日至2014年10月18日,该怎么办?在这种情况下,您选择的时间段包含记录的DateFrom和DateTo日期。如何构建一个查询来计算给定时间段内的QtyDelivered之间的差异?