2017-12-21 15 views
1

ここで、私は列距離を更新しようとしていますが、まずownerIDごとに距離を合計します。同じidアドレスが最初のレコードが思い出なた距離と第二は0.000SQL UPDATE 2つの同一の値がある場合、1つの列が0.000に等しくなるように設定します。

する必要があります必要があります。これは、期待どおりの結果

enter image description here

でこれまでのところ、私はこのコード

を使用して距離を計算する最初の部分をやりました
UPDATE Action_Distance 
SET [distance]=(SELECT sum([distance]) 
       FROM Action a2 
       WHERE [name]='travel' and a2.ownerID = Action_Distance.ownerId 
       ) 

       WHERE [name]='drive_through' 

どうすればいいのか分かりません。その後、NOT EXISTサブクエリと一緒にCASE式はこのように使用することができ、id_actionは、各行の一意であると仮定すると

答えて

0

UPDATE Action_Distance A 
SET [distance] = CASE 
        WHEN NOT EXISTS (SELECT 'anything' 
            FROM Action_Distance B 
            WHERE B.[name] = 'drive_through' 
             AND a.ownerId = b.ownerId 
             AND a.id_action > b.id_action) 
         THEN (SELECT SUM([distance]) 
          FROM Action a2 
          WHERE [name] = 'travel' 
           AND a2.ownerID = a.ownerId) 
         ELSE 0 
       END 
WHERE 
    [name] = 'drive_through' 
+0

答えだそれはあなたに多くのことを感謝します。 – johnnyReed

関連する問題