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 に答える