【发布时间】:2020-08-04 13:48:08
【问题描述】:
我正在尝试更新不同借记卡上的剩余金额。我有以下 2 个表格:卡片和交易。 我希望我的结果是:
Number|Initial_Amount|Remaining_Amount T_ID|T_Date|Credit_Card|Amount
---------------------------------------- ---------------------------------
123| 1000| 820 1| 05/02| 123| 100
456| 200| 150 2| 06/02| 456| 50
3| 06/02| 123| 80
我尝试运行以下查询:
UPDATE Credit_Cards
SET Credit_Cards.Remaining_Amount =( Credit_Cards.Initial_Amount-(
SELECT SUM(T.Amount)
FROM Transactions AS T
WHERE T.Credit_Card = Credit_Cards.Number));
但我收到以下错误:“操作必须使用可更新的查询”
可能是什么问题?我看到了很多关于 JOIN 的答案,但在这里没有使用一个,所以我不明白......
【问题讨论】:
-
看到这个post ,这个问题已经回答过了。
-
或者这个stackoverflow.com/questions/62822270/…。保存计算,尤其是聚合计算,通常是不必要的,而且通常是糟糕的设计。如果可以计算更新的值,可以在需要的时候计算。
-
不幸的是,您发送的所有帖子都没有用...我做错了什么?为什么我不能保存计算字段?需要时计算是什么意思?谢谢 ! @june7
-
@asantz96 我以前看过这篇文章,但不明白它如何解决我的问题。我的做法有什么问题?
标签: sql ms-access sql-update