mysql - 根据另一个表中的列更新数据库表中的列

标签 mysql sql database hive

我有两张 table

T1
|id|balance|
|1| 1000  |
|2| 2000  | 
|3| 3000  |

T2
|id|rate|months|
|1|0.50| 10   |
|2|0.25| 24   |
|3|0.40| 16   |

我想将表 T1 中的余额列更新为

T1.Balance = T1.Balance + T2.rate*T2.months*T1.Balance

如何在 MS SQL Server 中执行此操作?谢谢!

最佳答案

我创建了临时表来重新创建,因此您可以使用下面的更新:

 CREATE TABLE #T1
 (id INT NOT NULL,
 balance money NOT NULL)

 INSERT INTO #T1
 (id,balance)
  VALUES 
 (1, 1000 ),
 (2, 2000 ) ,
 (3, 3000 )


 CREATE TABLE #T2
 (id INT NOT NULL,
 rate MONEY NOT NULL,
 months INT NOT NULL)

  INSERT #T2
 (id,rate,months)
  VALUES 
  (1,.5,10),
  (2,.25,24),
  (3,.4,16)

  --confirm data
  SELECT * FROM #T1
  SELECT * FROM #T2

  --update balances
   update t1 SET balance =  T1.Balance + (T2.rate*T2.months*T1.Balance)
   FROM #T1 AS t1 
     JOIN #T2 AS t2 
       ON t1.id = t2.id

关于mysql - 根据另一个表中的列更新数据库表中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40942198/

相关文章:

python - 将 django sqlite 数据库迁移到 postgresql

php - 当 id 被转换为整数而不是字符串时,mysqli 准备语句更新查询失败

mysql - 大表上的慢 MySQL SELECT

mysql - 生日查询需要 SQL 帮助

sql - 如何从 SQL 数据库表中获取某些特定记录

mysql - 存储 2014-2015 字符串的最佳数据类型是什么?

MYSQL 外键错误

mysql - 在每次更新时触发触发,而不仅仅是一列

php - 阅读页面上的特定帖子

javascript - 如何计算经纬度的距离并在php中选择最短距离