我有一个库存表,可以计算我公司商店存储和主存储上分发的库存清单。现在我想分析一下,如果我在任何商店都有关键库存(这意味着少于5个商品)和主存储器中的足够资源,我必须通过查询将商品运送到该商店。我还有另一个主题,我可能会在主存储中添加新项目,所以我的查询必须提醒我每个商店至少发送5件。此外,如果我打开一个新商店(我将插入一个新的行与NULL模型,NULL库存到该表)它必须列出我第一天所需的库存。
感谢。
(顺便说一下,我想在SQL Server 2014中为个人开发而不是生产这样做。我在过去的12年中没有对任何程序进行过编码。)
更新:28/08/2017 10:42
对不起家伙,如果我不能很好地解释我的问题。我更新了我的referance表:dbo.stock
Referance Table 并查询输出: Query Output
所以 - 我想检查所有商店是否在他们的存储中都有公司生产, 如果公司开了一家新店,我必须找到它并且必须从所有产品中运送5件。
感谢。
答案 0 :(得分:1)
每个商店的关键型号列表和库存中的主要资源(如果有)或cero
select a.sloc, a.model, a.stock critical, isnull(b.stock,0) 'Main Resources'
from stock a left join stock b on a.model=b.model and b.sloc='Main'
where a.stock<5
对于您的请求的最后一部分,我不确定新开设的商店需要什么。
编辑
此程序至少可以满足您的需求,不是最佳选择,但您可以稍后进行处理。
begin transaction
declare @initialStock int=5
declare @stockDecrease int=0
insert into stock (sloc, model, stock)
select (select a.sloc
from stock a
where a.stock is null) n, m.model, @initialStock
from stock m where m.sloc='Main'
set @stockDecrease= @@ROWCOUNT/4*@initialStock
delete stock where stock is null
update stock
set stock=stock-@stockDecrease
where sloc='Main'
if exists (select 1 from stock where stock<0 and sloc='Main')
rollback
else
commit