【发布时间】:2015-10-13 14:35:15
【问题描述】:
UPDATE LoanAccount
SET LoanAmount = (
SELECT ((la.LoanAmount * (DATEDIFF(DAY, la.LoanDate, GETDATE()) * (la.InterestRate / la.LoanTerm)))) + la.LoanAmount
FROM Customer c, LoanAccount la
WHERE c.Customer_ID = la.Customer_ID
AND c.AccountNumber = 213451
)
, LoanDate = GETDATE()
WHERE Customer_ID = 2;
我无法为 ID=2 的客户更新所有 LoanAmount, 这是消息
子查询返回超过 1 个值。这是不允许的,当 子查询遵循 =、!=、、>= 或当子查询用作 一个表达式。
任何解决方案
【问题讨论】:
-
子查询不能返回多于一行。 (也许您也想确保子选择中的 Customer_ID=2?)
-
是的,我在 LoanAccount 表中有 4 行 Customer_ID=2,我想更新该客户的所有金额,一个客户可以在我的项目中拥有多个贷款账户。
标签: sql sql-server