17,086
社区成员
发帖
与我相关
我的任务
分享
SELECT T1.COMPANYCODE
,T1.COMPANYCODE1
,T1.PREM
,CASE
WHEN T1.PREM > T2.PREM THEN
ROUND(T3.PREM1 * T1.PREM / T3.PREM)
ELSE
T3.PREM1 - ROUND((T3.PREM - T1.PREM) / T3.PREM * T3.PREM1)
END AS PREM1
FROM TEST T1
LEFT JOIN TEST T2
ON T1.COMPANYCODE = T2.COMPANYCODE
AND T1.COMPANYCODE1 = T2.COMPANYCODE1
LEFT JOIN TEST1 T3
ON T1.COMPANYCODE = T3.COMPANYCODE;
[/quote]update test t1
set prem1 =
(select case
when not exists
(select 1
from test tt
where tt.companycode = t1.companycode
and tt.companycode1 > t1.companycode1) then
t2.prem1 - round((t2.prem - t1.prem) / t2.prem * t2.prem1)
else
round(t1.prem / t2.prem * t2.prem1)
end
from test1 t2
where t1.companycode = t2.companycode);