0

これが私がやろうとしていることです。基本的に、表に意図的に空白のままにして、Staging_X後で更新する列がいくつかあります。case以下の条件を使用してそれらの列を更新したいと思います。これをストアドプロシージャに実装したいと思います。

UPDATE Staging_X 
   SET Staging_X.[NoMaterial]
      (SELECT (case 
                 when ((([Up]+[Test])+[Mon])+[Down_percentage])*(1.68)=(0) 
                 then (168) else [Lost]*(1.68) 
               end) 
         FROM Staging_X)
4

3 に答える 3

5
UPDATE Staging_X 
SET [NoMaterial] = 
    case when [Up]+[Test]+[Mon]+[Down_percentage]=0 
    then 168 else [Lost]*1.68 end
WHERE [NoMaterial] is null
于 2013-08-16T11:20:04.827 に答える
3

私があなたを正しく理解していれば、値はすべて同じ行にあるため、そのような選択は必要ありません。

だから、次のようなものを試してください

UPDATE  Staging_X 
SET     Staging_X.[NoMaterial] = 
        case 
            when ((([Up]+[Test])+[Mon])+[Down_percentage])*(1.68)=(0) 
                then (168) 
            else [Lost]*(1.68) 
        end
于 2013-08-16T11:20:52.827 に答える