sql - 当与其他人相等时添加到列
问题描述
如果使用 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
解决方案
这是非规范化的表格设计,我建议您调整您的设计,但这很容易实现:
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
推荐阅读
- java - 关闭连接时收到警告“异常堆栈跟踪:**开始嵌套异常** ...”
- flutter - Flutter TextField,如何在文本字段内部与上方的标签中使用不同的样式
- android - Android Studio:BitmapFactory.decodeFile 上的错误
- android - 在 Android Studio 中构建 apk 时编译失败
- c - 用负整数计数排序?
- php - Laravel - 访问关系数组
- css - MIME 类型 ('text/html') 不是受支持的样式表
- python - Spyder 中的 google.cloud.storage.Client 在 Powercell 中工作时不起作用
- android - 转换 [-1,1] 范围内的 RGB 像素值
- vuejs2 - 如何测试 vuex 存储文件?