DECLARE @deposit TABLE(
checks VARCHAR(MAX),
deposit VARCHAR(MAX)
)
INSERT INTO @deposit
SELECT CheckID
, Total
FROM
DISCOUNT_DETAIL
INNER JOIN CHECK_DETAIL
ON DISCOUNT_DETAIL.CheckDetailID = CHECK_DETAIL.CheckDetailID
WHERE
DISCOUNT_DETAIL.DscntID = '98'
SELECT CASE WHEN CHECK_DETAIL.CheckID IN (SELECT checks
FROM @deposit)
THEN CHECKS.Payment + (SELECT abs(deposit) FROM @deposit)
ELSE
CHECKS.Payment
FROM ....
我收到一个错误:子查询返回多行。
如果我的支票ID与临时表的支票ID相匹配,该如何实现,然后仅将这笔存款添加到付款中。
我正在使用SQL Server 2005。
谢谢
最佳答案
我认为您想将表格连接在一起:
select c.payment + coalesce(abs(d.deposit), 0)
from checks c left outer join
@deposit d
on c.CheckId = d.checks
. . .
这会将存款金额的绝对值添加到每张支票中。如果
@deposit
中没有相应的记录,则付款不会更改。关于mysql - sql子查询如何获取所需的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24488102/