0

我正在尝试更新一个列,该列是另一个列的累积总和..

这是我对累计金额的查询。现在我需要在我的表中更新它。请就此提出建议。

SELECT s.[MM], s.[ProjectID], s.[Total_To_Bill],
    ISNULL((
        SELECT SUM(SS.[Total_To_Bill])
        FROM @mtss1 SS WHERE SS.[ProjectID] = s.[ProjectID] 
            AND SS.MM <= S.MM), 0) AS [ProjectedBillable] FROM @mtss1 AS s
4

1 回答 1

0

假设 MM 是每一行的唯一键,以下实现了您想要的:

with toupdate as (
     SELECT s.[MM],s.[ProjectID], s.[Total_To_Bill],
             Isnull((select SUM(SS.[Total_To_Bill])
                     FROM @mtss1 SS 
                     WHERE  SS.[ProjectID] = s.[ProjectID] and SS.MM <= S.MM) ,0
                    ) As [ProjectedBillable]
     From @mtss1 As s
    )
update t
    set t.cumsum = toupdate.ProjectedBillable
    from toupdate
    where t.mm= toupdate.MM and t.MM

如果 MM 没有定义每一行,那么你需要一个列或列的组合来定义。

于 2012-09-05T15:12:35.477 回答