插入到列中,直到达到某个值(基于FIFO的插入)



我正在使用ms server 2008,并且不知道如何设计基于FIFO的插入到特定列中,直到达到其他列的一定数量。

基本上,我想要的只是按发货日期/物品收货日期对列进行排序,填写"收货价值"列,直到达到"价格"列中的值,并在"剩余货物"列中插入剩余价值。这样我就知道还剩下多少了。这可能吗?

例如,我有一个包含商品(id、价格、发货日期从、发货日期到)的表。我想做的是,我想按goods_id和发货日期来订购这个清单。我有一个第二表,档案所有收到的货物。第二个表包含商品id、商品价值和我收到商品的日期。

我想描述的是下面的例子

商品表:<>之前|货号|价格|发货日期|发货日期至|货物剩余价值|收货价值|1 100 2016-09-26 2016-10-30 null null1 200 2016-09-22 2016-10-30 null null1 50 2016-09-23 2016-10-30 null null2 500 2016-05-10 2016-09-30 null null2 20 2016-05-12 2016-09-30 null null2 300 2016-05-04 2016-09-30 null null3 400 2016-10-12 2016-11-30 null null3 300 2016-10-06 2016-11-30 null null收货表| |商品id item_value | item_received_date |1 20 2016-09-261 2002016-09-222 500 2016-05-102 20 2016-05-122 400 2016-05-043 400 2016-10-123 100 2016-10-06用先进先出系统插入货物表:第一步:按装运日期订购:|货号|价格|发货日期|发货日期至|货物剩余价值|收货价值|2 300 2016-05-04 2016-09-30 null null2 500 2016-05-10 2016-09-30 null null2 20 2016-05-12 2016-09-30 null null1 200 2016-09-22 2016-10-30 null null1 50 2016-09-23 2016-10-30 null null1 100 2016-09-26 2016-10-30 null null3 300 2016-10-06 2016-11-30 null null3 400 2016-10-12 2016-11-30 null null第二步:按"收货日期"订购收货表。1 2002016-09-221 20 2016-09-262 400 2016-05-042 500 2016-05-102 20 2016-05-123 400 2016-10-063 100 2016-10-12用先进先出系统在栏中插入(收到的货物价值),直到达到"价格"。如果价格已经上涨,开始插入到下一行,直到该列的价格达到:例子:|货号|价格|发货日期|发货日期至|货物剩余价值|收货价值|2 300 2016-05-04 2016-09-30 300—100左(将100插入下一行并添加剩余值)2016-05-10 2016-09-30 500—增加100并插入500中的400。剩下100人2 20 2016-05-12 2016-09-30 20——增加20。最后一行剩下80个+接收表剩下20个。完成了1 200 2016-09-22 2016-10-30 200——新增接收表200条。1 50 2016-09-23 2016-10-30 20——接收表新增的最后20。1 100 2016-09-26 2016-10-30 130 0—130还剩!这个值我需要知道!2016-10-06 2016-11-30 300——增加300/400。剩下的100。3 400 2016-10-12 2016-11-30 200 200——增加了最后一行的100,增加了接收项表的100。还剩下200个。这是我需要知道的值。之前

如果你能帮我解决这个问题,我将非常感激,因为我不知道如何编码。

谢谢你,胡闹

您需要为您的需求创建存储过程。

为Goods创建一个游标(比如C1),然后为C1创建一个游标。goods_id为Received Goods创建游标(比如C2)。

创建两个循环。游标C1的循环是外部的,游标C2的循环是嵌套的。对于C1.goods_id,总是运行C2的循环。

内嵌套循环流程接收货物记录并更新C1。goods_value_已按您的要求收到

最新更新