【发布时间】:2019-11-03 22:46:18
【问题描述】:
我有以下 2 个表:
Col1|Col2|Col3
Val1 T1
Val2 T2
Col1|Col2|Col3|Col4
Val1 test 1
Val1 test 2
Val1 T1 3
Val2 test 1
Val2 T2 2
我需要用表 2 的 Col3 之和来更新 Table 1 的 Col3 的值,直到表 2 的 Col2 达到表 1 的 Col2 的值。所以,表 1 应该如下所示:
Col1|Col2|Col3
Val1 T1 6
Val2 T2 3
因此,T1 的 1+2+3 = 6 和 T2 的 1+2 = 3 相加。
基本上,两个表的 Col1 都是关键。我正在使用MSSQL2008 服务器。我试图用 Cursor 做到这一点,但到目前为止还没有运气。
请注意,表 2 中的按列排序是日期列 (Column4)。它按 Desc 排序。
【问题讨论】:
-
until Col2 of Table 2 reaches the value from Col2 of Table 1是什么意思 -
首先,我建议在您的示例中添加一行,可能是表 2 中的 Val1/X/4,以便读者可以看到有要排除的行。其次,为了回答这个问题,必须定义table2中的行顺序:table2中你的
order-by是什么? -
例如,它应该求和,直到表 2 的 Col2 等于 T1,这是表 1 的 Column2 的值。
-
@stackoverflow,是否有用于对行进行排序的列?
-
@stackoverflow,你试过我的答案了吗?好不好用?
标签: sql sql-server tsql sql-server-2008 sql-server-2008-r2