当“其他”相等时添加到列

时间:2018-08-13 14:29:58

标签: sql ms-access

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

例如:我只想在“帐户”和“帐户2”列匹配时添加“金额”和“金额2”列。

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

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

1 个答案:

答案 0 :(得分:0)

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

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