我有两个SQL select查询,它们返回两列,如下图所示。我想做的是从第一个查询的相关股票代码的UnsuppliedQty
列中减去第二个查询的Total
。
您能在这里指导我使用不同的方法吗?
更新:使用下面的查询,我能够执行减法,但是当where子句与第一个表不匹配时,它会给出null
。在这种情况下,我想返回它的原始值。
我该怎么做?
select stockcode, totalstock -(
select UNSUP_QUANT
from SALESORD_LINES
where stockcode='AIRFIL01'
and UNSUP_QUANT<>0
and dbo.STOCK_ITEMS.STOCKCODE = SALESORD_LINES.STOCKCODE)
from STOCK_ITEMS
答案 0 :(得分:1)
您可以使用一个简单的Join,就像这样
;WITH SL
AS
(
SELECT
StockCode,
UNSUP_QUANT = SUM(ISNULL(UNSUP_QUANT,0.00))
FROM SALESORD_LINES
WHERE ISNULL(UNSUP_QUANT,0.00) <> 0
GROUP BY StockCode
)
SELECT
SL.StockCode,
TotalStock = SI.TotalStock - SL.UNSUP_QUANT
FROM STOCK_ITEMS SI
LEFT JOIN SL
ON SL.StockCode = SI.StockCode