我想更新我的专栏copay
和coinsurance
。
如果对于特定患者后缀patient_pay
未发生变化且ingredient_cost
发生变化,则应将patient_pay
的值复制到Copay
列中。
此外,如果特定patient_suffix
成分费用发生变化但patient_pay
和ingredient_cost
的比例保持不变,则应将比率值复制到coinsurance
列。
Row_num -- Patient_Suffix --- Patient_Pay--- Ingredient_Cost --- Ratio ----- Copay ----- Coinsurance
1 -- A -- 15 -- 352.37
1 -- A -- 15 -- 352.37
1 -- A -- 15 -- 352.37
1 -- A -- 15 -- 368.15
1 -- A -- 15 -- 368.15
2 -- B -- 315.11 -- 315.48
2 -- B -- 346.26 -- 346.71
2 -- B -- 346.23 -- 346.71
所以我希望在Copay
中更新Patient_Suffix
以及patient_pay
和比率列中的Ingredient_Cost
和Patient_Suffix
以及Coinsurance
行中的相同比率} {B}位于declare @t INT
SET @t = 1
WHILE @t <= (SELECT count(distinct Patient_Suffix) from @temp)
BEGIN
IF (select count(distinct Patient_Pay) from @temp where Patient_Suffix = (select distinct(Patient_Suffix) from @temp where Row_num = @t )) = 1 and (select count(distinct Ingredient_Cost) from @temp where Patient_Suffix = (select distinct(Patient_Suffix) from @temp where Row_num = @t )) > 1
UPDATE @temp
SET Copay = Patient_pay
SET @t = @t + 1
END
列。
我的代码:
1 -- A -- 15 -- 352.37 -- 0.042 -- 15
1 -- A -- 15 -- 352.37 -- 0.042 -- 15 -- NULL
1 -- A -- 15 -- 352.37 -- 0.042 -- 15 -- NULL
1 -- A -- 15 -- 368.15 -- 0.040 -- 15 -- NULL
1 -- A -- 15 -- 368.15 -- 0.040 -- 15 -- NULL
2 -- B -- 315.11 -- 315.48 -- 0.998 -- NULL -- 0.998
2 -- B -- 346.26 -- 346.71 -- 0.998 -- NULL -- 0.998
2 -- B -- 346.23 -- 346.71 -- 0.998 -- NULL -- 0.998
但它进入无限循环,@ t = 1,@t的值不显示任何增量。
期望的输出: Row_num - Patient_Suffix --- Patient_Pay --- Ingredient_Cost ---比率----- Copay ----- Coinsurance
%