在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'
;
任何人在没有使用CURSOR的情况下解决了这个问题并循环使用了表格?
答案 0 :(得分:6)
不是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'
;
基本上,您在两个表之间定义一个JOIN(两者都是同一个表),然后根据t1
t2
列