我有两张桌子,第一张是昨天的库存水平称为" 昨天"并包含两列:
StockNumber, StockLevel
第二张表是今天的库存水平,称为" 今天"并且具有相同的列" StockNumber,StockLevel"。
我的问题是,如何找到"昨天"之间的库存水平差异?和" 今天"两个表格" StockLevel "变化和新的" StockNumber "出现在" 今天"。
如果这可以通过直接的SQL来完成,但是使用PHP添加额外的处理级别也没关系
答案 0 :(得分:2)
select y.StockNumber, t.StockLevel - y.StockLevel from yesterday as y inner join today as t on (y.StockNumber = t.StockNumber)
编辑:
捕获今天表中不在昨天表中的产品:
select y.StockNumber, t.StockLevel - coalesce(y.StockLevel,0) from yesterday as y right join today as t on (y.StockNumber = t.StockNumber)
合并确保如果您的产品不在yesterday
,您将获得t.StockLevel - 0
而不是t.StockLevel - NULL
答案 1 :(得分:1)
这将让你知道昨天的变化,为今天新的股票返回null(即昨天没有变化显示)
SELECT t.stocknumber, t.stocklevel-y.stocklevel difference
FROM today t
LEFT JOIN yesterday y
ON t.stocknumber = y.stocknumber
答案 2 :(得分:0)
那么,您可以使用以下sql找出昨天和今天的库存水平之间的差异。
select y.stockNumber, (t.stockLevel-y.stockLevel) as difference
from today t, yesterday y,
where t.stockNumber=y.stockNumber
group by t.stockNumber,t.stockLevel,y.stockLevel
希望这有帮助。