在Microsoft SQL Server中:
我已经多次看过这个问题了,但看不到有人解决这个问题:
UPDATE theTable t1
SET t1.col2 =
(SELECT (10 * (col1 + col2))
FROM theTable t2
WHERE t1.busRelAccount = t2.busRelAccount
AND t2.rowName = 'POS'
)
WHERE t1.busRelAccount = t2.busRelAccount
AND t1.rowName = 'INVENTORY'
;
Run Code Online (Sandbox Code Playgroud)
有没有使用CURSOR解决这个问题的人并循环表?
不是100%肯定你正在尝试做什么 - 但最有可能的是,你可以UPDATE更简单地写你的陈述 - 像这样:
UPDATE t1
SET t1.col2 = 10 * (t2.col1 + t2.col2)
FROM theTable t1
INNER JOIN theTable t2 ON t1.busRelAccount = t2.busRelAccount
WHERE
t1.rowName = 'INVENTORY'
AND t2.rowName = 'POS'
;
Run Code Online (Sandbox Code Playgroud)
基本上,您在两个表之间定义了一个JOIN(两者都是同一个表),然后您定义了如何更新t1基于列的列t2
| 归档时间: |
|
| 查看次数: |
14167 次 |
| 最近记录: |