我有一个名为#havehu的临时表,其中有患者,PersonID,遭遇和ICDcode的数据。有一个称为小肠结肠炎的列,其值为1和0。换句话说,如果患者患有小肠结肠炎,则将其分配为1,如果未患有该疾病,则将其分配为0。 我需要实现这一目标-如果某人的任何遭遇都拥有1,则他/她必须为所有遭遇分配1。
注意-病人的个人编号是相同的,但每次访问的遭遇编号都会更改。而且,我有7000多名患者和35,000次遭遇
答案 0 :(得分:0)
一种方法使用可更新的CTE和窗口函数:
with toupdate as (
select h.*,
max(Entrocolitis) over (partition by Personid) as person_e
from #havehu h
)
update toupdate
set Entrocolitis = max_e
where Entrocolitis is null or Entrocolitis <> max_e;