我在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?
任何开始的建议表示赞赏。谢谢!
答案 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