检查未来日期和返回短裤的数量

时间:2016-10-24 13:07:04

标签: sql sql-server

我在SQL Server中有两个表库存和订单。

Say Inventory反映所有已下订单的当前和未来库存。

广告

Item       Quantity
Shoes      100 
Coats      200
Socks      -300

在这种情况下,该公司根据表格短缺300袜子。

订单反映了我们从制造商和我们销售的商品中购买的商品。

Item      Quantity      Ship_ArrivalDate      Buy_Sell
Shoes     300           10/27/2016            Sell
Socks     500           10/27/2016            Buy
Socks     500           10/29/2016            Sell
Shoes     800           10/30/2016            Buy

所以,如果今天是2016年10月24日,我今天实际上有0双鞋。 2016年10月27日我有200只袜子,然后在2016年10月29日短袜300只,因为库存反映了所有未来的交易。经过300次销售和800次购买鞋子后,我有100个库存。但这意味着我将在2016年10月27日对鞋子做空。

我想建立一个反映所有未来日期的表格,并检查我将要做空的日子。

所以表格看起来像是:

输出

Date         Item        Quantity_Short
10/27/2016   Shoes       -400
10/29/2016   Socks       -300

我对如何检查每个日期感到困惑,并且真的不知道从哪里开始。我理解如何孤立地检查1个日期,但你如何基本上"循环"通过所有未来日期并将日期和数量保存到输出表中?

也许编写一个接受日期的函数然后使用apply?

任何开始的建议表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情

select date, item,
       sum(case when date > getdate() and buy_sell = 'sell' then -Quantity
                else Quantity
           End) as SumQuantity
from YourTable
group by date, item