update toussedefinition set price = 
       (select sum(p) from 
          (select sum(isnull(mi.count, 0) * isnull(md.disinfectionPrice, 0)) p
                  from MaterialInstance mi
                  join materialdefinition md
                  on mi.materialDefinition_id = md.id
                 where mi.tousse_id = toussedefinition.id
                union
                select sum(isnull(di.amount, 0) * isnull(dg.referencePrice, 0)) p
                  from DiposableGoodsInstance di
                  join DisposableGoods dg
                    on di.diposableGoods_id = dg.id
                 where di.tousseDefinition_id = toussedefinition.id
             ) vw
         )
 where toussetype = '消毒物品' and forDisplay='1';