将数据复制到相同的行

时间:2014-03-17 14:49:30

标签: sql-server-2008

我在SQL服务器上的表现并不是很好,但是我试图能够将患者遭遇数据从一个患者复制/复制到同一个表中的另一个患者。但是,这可能是我的想法。

下面的所有三个表都匹配在encounter_id上,但没有一个表有PK。我希望能够编写一个查询/存储过程,在其中我可以指定要复制的encounter_id和patient_id。系统需要生成下一个encounter_id。

基本上,我们会同时看到多个人,因此需要将所记录的遭遇复制到所有参与者,不幸的是我们的EMR系统没有内置此功能。

这些数据来自三个表格:

**Table: enc_encounter**

encounter_id   patient_id   encounter_date       encounter_time       etc1   etc2   etc3
186            123          2014-03-12 13:17:47  2014-03-12 13:17:47  123    123    123

**Table: enc_form**

encounter_id   page   recorded_by   recorded_on
186            1      100           2014-03-12 13:17:47
186            2      100           2014-03-12 13:17:47  
186            3      100           2014-03-12 13:17:47
186            4      100           2014-03-12 13:17:47

**Table: enc_formdetail**

encounter_id   page   keyname   keyvalue
186            1      date_1    2014-03-12
186            1      field_1   abc1
186            1      field_1   bcd1 
186            1      field_1   asdf 
186            1      field_1   jkl 
186            1      field_1   asdf 
186            1      field_1   bbb1 
186            1      field_1   cccc2

理想情况下,在查询/存储过程之后,我指定要复制的encounter_id以及要复制的patient_id,表格如下所示:

**Table: enc_encounter**

encounter_id   patient_id   encounter_date       encounter_time       etc1   etc2   etc3
186            123          2014-03-12 13:17:47  2014-03-12 13:17:47  123    123    123
187            456          2014-03-12 13:17:47  2014-03-12 13:17:47  123    123    123

**Table: enc_form**

encounter_id   page   recorded_by   recorded_on
186            1      100           2014-03-12 13:17:47
186            2      100           2014-03-12 13:17:47  
186            3      100           2014-03-12 13:17:47
186            4      100           2014-03-12 13:17:47
187            1      100           2014-03-12 13:17:47
187            2      100           2014-03-12 13:17:47  
187            3      100           2014-03-12 13:17:47
187            4      100           2014-03-12 13:17:47

**Table: enc_formdetail**

encounter_id   page   keyname   keyvalue
186            1      date_1    2014-03-12
186            1      field_1   abc1
186            1      field_1   bcd1 
186            1      field_1   asdf 
186            1      field_1   jkl 
186            1      field_1   asdf 
186            1      field_1   bbb1 
186            1      field_1   cccc2
187            1      date_1    2014-03-12
187            1      field_1   abc1
187            1      field_1   bcd1 
187            1      field_1   asdf 
187            1      field_1   jkl 
187            1      field_1   asdf 
187            1      field_1   bbb1 
187            1      field_1   cccc2

非常感谢任何可以提供的帮助或指示。

1 个答案:

答案 0 :(得分:1)

为你的第一张桌子做了准备:

insert   Table1
         (encounter_id, patient_id, encounter_date, ...other columns...)
select   encounter_id
,        456 -- New patient ID
,        encounter_date
,        ...other columns...
from     Table1
where    encounter_id = 186