首页 > 解决方案 > 当与其他人相等时添加到列

问题描述

如果使用 UPDATE 语句在多个列(Account,Account2)中具有相同的值,我如何添加两列(amount,amount2)。即使帐户 <> 帐户 2,我也想保留所有行。我也希望它们在两个列中仅帐户和金额。我正在使用 MS Access sql 视图。* 我想更新表格,而不仅仅是使用 select 语句*

例如:我只想在 Account、Account 2 列匹配的情况下添加 Amount 和 Amount2 列。

我希望结果只有两列,即帐户和加在一起的金额。

Account Amount Account2 Amount2
1234576  4      1234576    4
4444444  10     4564888    11
456789   2      456789      2
000000   1      1111111     6 

标签: sqlms-access

解决方案


这是非规范化的表格设计,我建议您调整您的设计,但这很容易实现:

UPDATE MyTable
SET [Amount] = [Amount] + [Amount2],
[Amount2] = Null,
[Account2] = Null
WHERE [Account] = [Account2]

然后,如果您想在之后将帐户和金额移动到单个列:

INSERT INTO MyTable(Account, Amount)
SELECT Account2, Amount2
FROM MyTable
WHERE Account2 IS NOT NULL Or Amount2 IS NOT NULL

然后,删除不必要的列

ALTER MyTable DROP COLUMN Account2, Amount2 

推荐阅读