27,579
社区成员
发帖
与我相关
我的任务
分享
update t1
set status = case when t2.OutQuantity = 0 then 1
when t2.OutQuantity = t2.InQuantity then 3
when t2.OutQuantity between 0 and t2.InQuantity then 2
end
from t1 t
inner join
(
select MainID,SUM(InQuantity) as InQuantity,
sum(OutQuantity) as OutQuantity
from t2
group by MainID
)t2
on t1.MainID = t2.MainID
update T1 set STATUS= case when T2.OutQuantity=0 then 1 case when T2.OutQuantity=T2.InQuantity then 3 else 2 end
from T1,T2 where T1.MainID=T2.MainID
要是1对多:
就需要对T2进行一下处理了,按规则取最大、最小还是取和~~update t1
set status = case when t2.OutQuantity = 0 then 1
when t2.OutQuantity = t2.InQuantity then 3
when t2.OutQuantity between 0 and t2.InQuantity then 2
end
from t1 t
inner join
(
select MainID,SUM(InQuantity) as InQuantity,
sum(OutQuantity) as OutQuantity
from t2
group by MainID
)t2
on t1.MainID = t2.MainID
update t1
set status = case when t2.OutQuantity = 0 then 1
when t2.OutQuantity = t2.InQuantity then 2
when t2.OutQuantity between 0 and t2.InQuantity then 3
end
from t1 t
inner join
(
select MainID,SUM(InQuantity) as InQuantity,
sum(OutQuantity) as OutQuantity
from t2
group by MainID
)t2
on t1.MainID = t2.MainID
UPDATE t1
SET t1.[status]=CASE WHEN b.OutQuantity=0 THEN 1 WHEN OutQuantity=InQuantity THEN 3 ELSE THEN 2 END
FROM t1 INNER JOIN (SELECT mainid,SUM(OutQuantity)OutQuantity,SUM(InQuantity)InQuantity FROM t2 GROUP BY mainid) t2 ON t1.mainid=t2.mainid