表1
CatId - - Type - - Qty
==============================
8 || O || 10
8 || N || 20
8 || U || 30
30 || N || 5
30 || O || 15
30 || NULL || 25
表2
catId -- Old - -New -- Useless -- Other
========================================
8 || 100 || 70 || 140 || 110
30 || 10 || 20 || 30 || 50
结果:更新表2表1像
-------------------------------------------------
catId -- Old -- New -- Useless -- Other
8 || 90 || 50 || 110 || 110
30 || 5 || 5 || 30 || 25
结果应该如何来:
表1和表2有一个共同的列CATID。
我想减去像表2(各O/N/U /其他)=表2(各O/N/U /其他) - 表1(类型)和宁愿溶液不循环
我试过,但不能正常工作 -
Update Table2
Set New = New - (CASE Type WHEN 'N' THEN (Table1.qty) Else 0 End),
Old = Old - (CASE Type WHEN 'O' THEN (Table1.qty) Else 0 End),
Old = Old - (CASE Type WHEN 'O' THEN (Table1.qty) Else 0 End),
Other= Othere- (CASE Type WHEN is Null THEN (Table1.qty) Else 0 End)
from table1
inner join table2
On table1.catId = table2 .catId
+1 – wickedone 2012-04-17 16:37:06