在DB2数据库中,我想使用SQL查询进行以下简单的数学运算:
可用库存=供应商 - DemandStock
SupplyStock存储在1行1表中,让我们称这个表为Supply表。 因此 Supply 表中包含以下数据:
ProductID | SupplyStock
---------------------
109 10
244 7 edit: exclude this product from the search
DemandStock存储在一个单独的表Demand中,其中记录需求,因为每个客户在客户订单旅程中记录需求。 Demand表中的示例数据:
ProductID | DemandStock
------------------------
109 1
244 4 edit: exclude this product
109 6
109 2
因此,在我们的脑海中,如果我想计算产品'109'的可用库存,则供应量为10,产品需求量109总计为9,因此库存量为1。
如何在DB2 SQL中的一个选择查询中执行此操作?
到目前为止,我对PseudoCode中的一些想象步骤的知识:
结果如下:
Product ID | AvailableStock
109 9
我希望在一个SQL选择查询中选择此选项。
编辑: 我收到了答案(这几乎是完美的),并意识到问题遗漏了一些信息。 此信息: 我们需要从我们不想选择数据的产品中排除数据,我们还需要专门选择产品109。 我道歉,原始问题中省略了这一点。 我已经添加了“where”来选择产品,这对我有用。但是为了将来,也许答案应该包括这些信息。
答案 0 :(得分:1)
您可以使用join
将表格合并在一起,group by
汇总join
的结果:
select s.ProductId, s.SupplyStock, sum(d.DemandStock),
(s.SupplyStock - sum(d.DemandStock)) as Available
from Supply s left join
Demand d
on s.ProductId = d.ProductId
where s.ProductId = 109
group by s.ProductId, s.SupplyStock;