如果在SQL Server

时间:2016-06-09 20:01:26

标签: sql-server-2012

我想更新我的专栏copaycoinsurance

如果对于特定患者后缀patient_pay未发生变化且ingredient_cost发生变化,则应将patient_pay的值复制到Copay列中。

此外,如果特定patient_suffix成分费用发生变化但patient_payingredient_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_CostPatient_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

%

0 个答案:

没有答案