这是我的问题的简化版本:
Table 1
Key1, lastdate, lasttranstype
Table2
Table1key1, trandate, trantype
我想要一条 SQL 语句使用 Table2 中具有最新日期的匹配记录来更新 table1 上每个记录的 lastdate 和 lasttransdate
我的数据库是进步的。
这可能吗(我当然可以写一个程序来做,但我宁愿只用一个 SQL 语句来做)?
这是我的问题的简化版本:
Table 1
Key1, lastdate, lasttranstype
Table2
Table1key1, trandate, trantype
我想要一条 SQL 语句使用 Table2 中具有最新日期的匹配记录来更新 table1 上每个记录的 lastdate 和 lasttransdate
我的数据库是进步的。
这可能吗(我当然可以写一个程序来做,但我宁愿只用一个 SQL 语句来做)?
在 T-SQL 中:
UPDATE Table1
SET lastdate = trandate, lasttranstype = trantype
FROM Table1 INNER JOIN Table2 ON Table1.Key1 = Table2.Table1Key1
编辑:我不知道 Progress 是 RDBMS 的名称。以下内容对您有用吗?
UPDATE Table1
SET lastdate =
(SELECT trandate FROM Table2 WHERE Table2.Table1Key1 = Table1.Key1),
lasttranstype =
(SELECT trantype FROM Table2 WHERE Table2.Table1Key1 = Table1.Key1)
update table1, table2
set table1.lastdate = table2.trandate, table1.lasttranstype = table2.trantype
where table1.key1 = table2.table1key1