如何使用SQL server中的where条件计算从table2.rows更新到table1.column的值

如何使用SQL server中的where条件计算从table2.rows更新到table1.column的值,sql,sql-server,Sql,Sql Server,如何使用SQL server中的where条件更新表1.table2.rows count中的列值试一试。看看它是否给你足够的工作 DECLARE @TABLE1 AS TABLE (KeyField CHAR(1) ,CountField INT ) DECLARE @TABLE2 AS TABLE (KeyField CHAR(1) ,Othe

如何使用SQL server中的where条件更新表1.table2.rows count中的列值试一试。看看它是否给你足够的工作

DECLARE @TABLE1 AS TABLE (KeyField CHAR(1)
                         ,CountField INT
                         )
DECLARE @TABLE2 AS TABLE (KeyField CHAR(1)
                         ,OtherData NVARCHAR(MAX)
                         )

INSERT  INTO @TABLE1
        (KeyField, CountField)
VALUES  ('A', 0) 
,       ('B', 0)
,       ('C', 0)

INSERT  INTO @TABLE2
        (KeyField, OtherData)
VALUES  ('A', CAST(NEWID() AS NVARCHAR(MAX)))
,       ('A', CAST(NEWID() AS NVARCHAR(MAX)))
,       ('B', CAST(NEWID() AS NVARCHAR(MAX)))
,       ('B', CAST(NEWID() AS NVARCHAR(MAX)))
,       ('B', CAST(NEWID() AS NVARCHAR(MAX)))
,       ('C', CAST(NEWID() AS NVARCHAR(MAX)))

;
WITH    cte
          AS (SELECT    KeyField
              ,         COUNT(1) AS Cnt
              FROM      @TABLE2
              GROUP BY  KeyField
             )
    UPDATE  T1
    SET     T1.CountField = T2.Cnt
    FROM    @TABLE1 T1
    JOIN    cte T2 ON T2.KeyField = T1.KeyField

SELECT * FROM @TABLE1

对于将来的ref,如果您可以发布一些数据集和预期结果,这会有所帮助。现在,这应该会让您朝着正确的方向前进。

您是指表2中的特定行或行数吗?添加一些示例表数据和预期结果-所有这些都是格式化文本而不是图像。您尝试了什么?显示您当前的查询尝试。添加表的快照它将有助于快速解决您的查询您通常不应存储可以计算的内容。您所做的一切都是通过存储某种尚未明确的计数来实现的,因为它已经过时,所以什么可能会导致计算值出错。根据您的要求,还值得查看计算字段。确实需要设置一个函数来从另一个表中检索计数,这对性能有很大影响,但数据总是正确的,而不是等待您以某种方式刷新计数。@Suresh为您完成了这项工作吗?如果是,您可以标记为答案,或者给我们一些更详细的信息,以提供更好的解决方案。